jQuery点击按钮实现收缩隐藏功能

mac2024-04-09  28

一、实现的功能

点击title区域的按钮,收缩/隐藏相应的内容区域,并改变按钮中的文案。

二、实现方法

采用jQuery中的slideToggle() 方法

定义和用法

slideToggle() 方法通过使用滑动效果(高度变化)来切换元素的可见状态。

如果被选元素是可见的,则隐藏这些元素,如果被选元素是隐藏的,则显示这些元素。

语法

$(selector).slideToggle(speed,callback) 参数描述speed

可选。规定元素从隐藏到可见的速度(或者相反)。默认为 "normal"。

可能的值:

毫秒 (比如 1500)"slow""normal""fast"

在设置速度的情况下,元素在切换的过程中,会逐渐地改变其高度(这样会创造滑动效果)。

callback

可选。toggle 函数执行完之后,要执行的函数。

如需学习更多有关 callback 的内容,请访问我们的 jQuery Callback 这一章。

除非设置了 speed 参数,否则不能设置该参数。

提示和注释

提示:如果元素已经隐藏,则该效果不产生任何变化,除非规定了 callback 函数。

三、代码

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .box{width: 300px; border-bottom: 1px solid #ccc; background: skyblue;} .box:last-child{border: none;} .box h3{margin: 0; padding: 10px 0; overflow: hidden; zoom: 1;} .box h3 button{float: right;} .box .content{background: lightgreen;} </style> </head> <body> <div class="box"> <h3>title1 <button>[收起]</button></h3> <div class="content"> <div>内容1-1</div> <div>内容1-2</div> <div>内容1-3</div> </div> </div> <div class="box"> <h3>title2 <button>[收起]</button></h3> <div class="content"> <div>内容2-1</div> <div>内容2-2</div> <div>内容2-3</div> </div> </div> <div class="box"> <h3>title3 <button>[收起]</button></h3> <div class="content"> <div>内容3-1</div> <div>内容3-2</div> <div>内容3-3</div> </div> </div> <script type="text/javascript" src="http://daipianpian.com/common/js/jquery-3.1.1.min.js"></script> </head> <script type="text/javascript"> // 收缩隐藏效果 $(document).ready(function(){ var buttonGroup = $('.box > h3 > button'); buttonGroup.each(function() { $(this).click(function(){ $(this).parent('h3').next().slideToggle(); var btnText = $(this).text(); if(btnText == '[展开]') { $(this).text('[收起]'); } else { $(this).text('[展开]'); } }); }); }); </script> </body> </html>

本人前端程序员,长期混迹于各种前端开发中,现在专门为前端热爱者建了个微信群,和大家一起分享自己在工作、学习中遇到的技术知识或问题,还有各种资料和课程,各位感兴趣的可以加入哦~

 

最新回复(0)