一、实现的功能
点击title区域的按钮,收缩/隐藏相应的内容区域,并改变按钮中的文案。
二、实现方法
采用jQuery中的slideToggle() 方法
定义和用法
slideToggle() 方法通过使用滑动效果(高度变化)来切换元素的可见状态。
如果被选元素是可见的,则隐藏这些元素,如果被选元素是隐藏的,则显示这些元素。
语法
$(selector).slideToggle(speed,callback)
参数 | 描述 |
---|---|
speed |
可选。规定元素从隐藏到可见的速度(或者相反)。默认为 “normal”。 可能的值:
在设置速度的情况下,元素在切换的过程中,会逐渐地改变其高度(这样会创造滑动效果)。 |
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>
本人前端程序员,长期混迹于各种前端开发中,现在专门为前端热爱者建了个微信群,和大家一起分享自己在工作、学习中遇到的技术知识或问题,还有各种资料和课程,各位感兴趣的可以加入哦~
版权声明:本文为daipianpian原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。