vue和react等项目中更简单的实现展开收起更多等效果示例

前端之家收集整理的这篇文章主要介绍了vue和react等项目中更简单的实现展开收起更多等效果示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

本文题目中虽然写有vue和react,但是并非vue和react相关知识,而是最基本的html5和css3的一些知识,之所以写vue,是因为我最近项目中用到了类似效果,我用vue相关知识实现并不雅观,用html5和css3实现,则更加完美。

项目案例

项目中有如下效果

好多展开收起,对于这个的实现,我一开始用了vue一些比较挫的dom操作,就是父元素toggleClass一个类名,进行子元素的显示和隐藏。

由于这个方法是通用方法,项目中好多地方使用,代码大概如下:

这样写,既不友好,后期又难以维护。最近重构项目的时候,把这些地方都重构了,用了今天介绍的方法!更多重构要点,请点击这篇文章。

html5和css3实现展开收起

代码如下:

图表参数 这里是包含的div等其他展示元素

css代码

代码解释

html5的detail和summary本身就是一个展开收起的效果。假如不了解, 可以查看 。

隐藏默认三角如下:

details和summary的ui优化

张鑫旭有篇文章,对details和summary介绍的很详细

对应其UI的优化,主要有如下几个方面:

1、小三角的优化,包括颜色、隐藏、位置、替换。 2、outline轮廓的去除

小三角颜色修改

小三角位置修改-右侧显示

outline轮廓的去除

我上面用的是

这样对无障碍访问非常不友好,优化方案可以看张鑫旭大神的做法。

details和summary其他应用

1、更多效果

css代码

2、悬浮菜单效果

CSS代码

Box-shadow: inset 1px 0 #ddd,inset -1px 0 #ddd; } [open] summary::after { transform: rotate(180deg); } .Box { position: absolute; border: 1px solid #ddd; background-color: #fff; min-width: 100px; padding: 5px 0; margin-top: -1px; } .Box a { display: block; padding: 5px 10px; color: inherit; } .Box a:hover { background-color: #f0f0f0; } .Box sup { position: absolute; color: #cd0000; font-size: 12px; margin-top: -.25em; }

HTML代码

这里放一段文字表明上面的是悬浮效果

3、树形菜单效果

CSS代码

summary::before { background: linear-gradient(to right,#999) no-repeat center; background-size: 10px 2px; }

HTML代码

我的视频
爆肝工程师的异世界狂想曲
tv1-720p.mp4
tv2-720p.mp4
...
tv10-720p.mp4
七大罪
七大罪B站00合集.mp4
珍藏动漫网盘地址.txt
我们的小美好.mp4

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的Vue相关文章