就像这个动画一样的效果,div先是隐藏的,点击按钮后显示并且有动画效果,隐藏的时候同样。但我绝对我写的太复杂,有没有更简单的方案呢(不要第三方库)!
比较简单的思路是:
方块无需隐藏,只需要设置高度为0就看不见了
用transition
实现动画效果
不需要使用hidden
和show
两个类名来控制,其实它就只有两种状态,所以可以认为无show
就是隐藏了
另外无需写一个show()
和hide()
分开绑定,其实你这个按钮点一下是展开,再点一下隐藏,用一个toggle()
切换显示状态就可以了
我在你的代码上做了点修改,如下:
https://jsfiddle.net/boxsnake...
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<style type="text/css">
.box{
background: red;
height: 200px;
width: 200px;
transition: height 0.8s;
}
</style>
<body>
<button onclick="changeHeight()">click me</button>
<div class="box" style="height: 0;"></div>
</body>
<script src="https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
function changeHeight(){
var box=$('.box')
if($('.box').height()!=0){
$('.box').height(0)
}else{
$('.box').height(200)
}
}
</script>
</html>
可以用jquery实现吗?
//头部引入jquery,toggle()
<body>
<p>bugbugbug</p>
<button>Toggle</button>
<script type="text/javascript">
$(document).ready(function() {
$("button").click(function() {
$("p").toggle(1000);
});
});
</script>
</body>
8 回答6k 阅读✓ 已解决
9 回答9.4k 阅读
6 回答5k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
5 回答8k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10k 阅读
试试用transition:
demo