Vue2(三)实现子菜单展开收缩,带动画效果实现方法


Posted in Javascript onApril 28, 2019

以前做这种操作就是简单的display:block,但现在用户的要求也越来越高,需要美观和动画感。

现在介绍用一种简单的方式来实现子菜单从上向下展开子菜单。

看下效果图:

Vue2(三)实现子菜单展开收缩,带动画效果实现方法

点开效果:

Vue2(三)实现子菜单展开收缩,带动画效果实现方法

其实原理比较简单,就是通过子菜单的 max-height: 0;和 max-height: 2000px来实现子菜单的显示和关闭。加上css3的 transition: max-height .3s;来实现动画效果。

子菜单的样式:

.tree-son-menu{
  background-color: #FFF;

  .menu-body {
   z-index: 20;
   position: relative;
   color: #5f5f5f;
   overflow: hidden;
   max-height: 0;
   -webkit-transition: max-height .3s;
   transition: max-height .3s;
  }
  &.open .menu-body {
   max-height: 600px;
   -webkit-transition: max-height .5s;
   transition: max-height .5s
  }
  &.two-level{
   .row-item{
    .row-left{
     padding-left: .8rem;
    }
   }

  }
 }

关键语句,子菜单的body默认样式

max-height: 0;
 -webkit-transition: max-height .3s;
  transition: max-height .3s;

当子菜单追加open样式后,子菜单的body样式:

&.open .menu-body {
   max-height: 600px;
   -webkit-transition: max-height .5s;
   transition: max-height .5s
  }

 然后通过点击事件来实现子菜单的样式open的切换,则就轻松实现了菜单的收缩和展开了。

$(".tree-son-menu").toggleClass('open');

以上所述是小编给大家介绍的vue实现收缩展开详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js数组Array sort方法使用深入分析
Feb 21 Javascript
控制文字内容的显示与隐藏示例
Jun 11 Javascript
js 左右悬浮对联广告代码示例
Dec 12 Javascript
js控制网页前进和后退的方法
Jun 08 Javascript
原生javascript实现addClass,removeClass,hasClass函数
Feb 25 Javascript
js判断登陆用户名及密码是否为空的简单实例
May 16 Javascript
JS制作图形验证码实现代码
Oct 19 Javascript
D3.js实现饼状图的方法详解
Sep 21 Javascript
ES6中箭头函数的定义与调用方式详解
Jun 02 Javascript
详解关于element el-button使用$attrs的一个注意要点
Nov 09 Javascript
从零使用TypeScript开发项目打包发布到npm
Feb 14 Javascript
vue 通过绑定事件获取当前行的id操作
Jul 27 Javascript
js+html5 canvas实现ps钢笔抠图
Apr 28 #Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
Apr 28 #Javascript
详解微信小程序调用支付接口支付
Apr 28 #Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
Apr 28 #Javascript
使用webpack编译es6代码的方法步骤
Apr 28 #Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 #Javascript
详解微信小程序获取当前时间及日期的方法
Apr 28 #Javascript
You might like
让PHP以ROOT权限执行系统命令的方法
2011/02/10 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
php 魔术方法详解
2014/11/11 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
2018/06/09 jQuery
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
Python 学习笔记
2008/12/27 Python
分享Python字符串关键点
2015/12/13 Python
pandas对指定列进行填充的方法
2018/04/11 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
Python 解决相对路径问题:"No such file or directory"
2020/06/05 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
医院护士求职自荐信格式
2013/09/21 职场文书
优秀教师工作感言
2014/02/16 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
员工聘用合同范本
2015/09/21 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js