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 相关文章推荐
jquery 插件开发方法小结
Oct 23 Javascript
JavaScript版DateAdd和DateDiff函数代码
Mar 01 Javascript
jquery星级插件、支持页面中多次使用
Mar 25 Javascript
JS将光标聚焦在文本最后的实现代码
Mar 28 Javascript
javascript如何写热点图
Dec 08 Javascript
js实现正则匹配中文标点符号的方法
Dec 23 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
Jan 24 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
Aug 12 Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 Javascript
Javascript中的this,bind和that使用实例
Dec 05 Javascript
微信小程序scroll-view的滚动条设置实现
Mar 02 Javascript
JavaScript碰撞检测原理及其实现代码
Mar 12 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访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
深入解析php之sphinx
2013/05/15 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
Javascript函数式编程语言
2015/10/11 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
Python正则抓取网易新闻的方法示例
2017/04/21 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
使用python对excle和json互相转换的示例
2018/10/23 Python
浅谈python中get pass用法
2019/03/19 Python
对python中UDP,socket的使用详解
2019/08/22 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
python编写猜数字小游戏
2019/10/06 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
专业毕业生个性的自我评价
2013/10/03 职场文书
股权转让协议书
2014/04/12 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python
Python函数式编程中itertools模块详解
2021/09/15 Python