我是靠谱客的博主 花痴鸵鸟,这篇文章主要介绍js 展开折叠动画原理,jquery的toggle切换效果,现在分享给大家,希望可以做个参考。

效果图:

 

想法:

jquery的展开折叠动画效果很好看,想自己实现一个,结果发现仅仅只靠css添加类和动画是不行,最开始的思路是折叠时候设置高度为0,展开时设置高度设置为auto,让他自己撑开,可是transition并不过渡高度height为auto的动画,所以也就没有生效。

实现方法:

transition过渡高度height的时候,必须设置固定px,100%也不会生效,所以我们必须知道这块内容完全撑开的时候所占据的高度是多少。

最后发现,在原生dom节点上,scrollHeight属性就是这个节点在不使用滚动条的情况下为了适应视口中所用内容所需的最小高度。

最终代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> /* *{ margin:0; padding:0; } */ /*隐藏滚动条,不然获取高度就不一致*/ .box::-webkit-scrollbar { display: none; } .box::-webkit-scrollbar { width: 0; background: 0 0; } .box{ width:400px; height:0; background:#eee; overflow: hidden; } .collapse-transition { transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out; } </style> </head> <body> <button class="toggleBtn">切换</button> <div class="box collapse-transition"> 我们建议使用 CDN 引入 Element 的用户在链接地址上锁定版本,以免将来 Element 升级时受到非兼容性更新的影响。锁定版本的方法请查看。 我们建议使用 CDN 引入 Element 的用户在链接地址上锁定版本,以免将来 Element 升级时受到非兼容性更新的影响。锁定版本的方法请查看。 我们建议使用 CDN 引入 Element 的用户在链接地址上锁定版本,以免将来 Element 升级时受到非兼容性更新的影响。锁定版本的方法请查看。 我们建议使用 CDN 引入 Element 的用户在链接地址上锁定版本,以免将来 Element 升级时受到非兼容性更新的影响。锁定版本的方法请查看。 </div> </body> </html> <script src="./jquery.3.2.1.min.js"></script> <script> $('.toggleBtn').on('click',function(){ var that=$(this); var box=$('.box'); let scrollHeight=box[0].scrollHeight;//不使用滚动条的情况下为了适应视口中所用内容所需的最小高度 if(box.css('height')=='0px'){ box.css({ 'height':scrollHeight+'px', 'overflow': 'auto' }); }else{ box.css({ 'height':'0', 'overflow': 'hidden' }); } box.addClass('collapse-transition'); }); </script>

最后

以上就是花痴鸵鸟最近收集整理的关于js 展开折叠动画原理,jquery的toggle切换效果的全部内容,更多相关js内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部