jQuery动画
jquery动画:动画效果,有基本动画显示和隐藏、滑动、淡入淡出、自定义动画
1.1 显示和隐藏
show([speed,[easing],[fn]])
显示隐藏的匹配元素。
hide([speed,[easing],[fn]])
隐藏显示的元素
注意参数分析:
speed速度
speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
我们把 速度 写到 show() 和 hide() 方法里, 动画切换的时候,有过渡效果,比较好看。
.box {
width: 300px;
height: 300px;
background-color: red;
margin-bottom: 20px;
display: none;
}
<div class="box"></div>
<button id="btn1">显示</button>
<button id="btn2">隐藏</button>
<script src="./jquery-3.5.1/jquery-3.5.1.min.js"></script>
<script>
$(function(){
$('#btn1').click(function(){
$('.box').show(250);
})
$('#btn2').click(function(){
$('.box').hide(250)
})
})
</script>
预览:

1.2 滑动
slideUp([speed,[easing],[fn]]) 向上滑动
通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。
slideDown([speed,[easing],[fn]]) 向下滑动
通过高度变化(向下增大)来动态地显示所有匹配的元素,在显示完成后可选地触发一个回调函数。
优化图的显示效果:
我们让 图 包裹在 一个div盒子中,就可以实现 在滑动的时候,只是 高度在变!!!
<style>
*{
margin: 0;
padding: 0;
}
.ad{
width: 1190px;
height: 100px;
margin:0 auto;
position: relative;
}
.top{
width: 100%;;
height: 100px;
background-color: #f54c23;
}
.close{
font-size:16px;
color:#fff;
background-color: rgba(0,0,0,0.3);
width: 20px;
text-align: center;
line-height: 20px;
position:absolute;
top:0;
right:0;
cursor: pointer;
}
</style>
<div class="top">
<div class="ad">
<img src="./img/ad1.png" alt="">
</div>
</div>
<div class="close">×</div>
<script src="./jquery-3.5.1/jquery-3.5.1.min.js"></script>
<script>
$(function(){
//定义开关
//注意:开关定义在事件的外面!
// 解决的方法是:我们要使用 流程控制开关,在一开 一关,各自的动作中,做各自的事情。
var flag=true;
$('.close').click(function(){
if(flag==true){
$('.top').slideUp();
flag=false;
console.log('关闭');
}else{
$('.top').slideDown();
flag=true;
console.log('显示');
}
})
})
</script>
预览:

滑动切换
slideToggle()
通过高度变化来切换所有匹配元素的可见性,并在切换完成后可选地触发一个回调函数。
<style>
*{
margin: 0;
padding: 0;
}
.ad{
width: 1190px;
height: 100px;
margin:0 auto;
position: relative;
}
.top{
width: 100%;;
height: 100px;
background-color: #f54c23;
}
.close{
font-size:16px;
color:#fff;
background-color: rgba(0,0,0,0.3);
width: 20px;
text-align: center;
line-height: 20px;
position:absolute;
top:0;
right:0;
cursor: pointer;
}
</style>
<div class="top">
<div class="ad">
<img src="./img/ad1.png" alt="">
</div>
</div>
<div class="close">×</div>
<script src="./jquery-3.5.1/jquery-3.5.1.min.js"></script>
<script>
$(function(){
$('.close').click(function(){
$('.top').slideToggle()
})
})
</script>
效果如上图相同
1.3 淡入淡出
fadeIn([speed],[easing],[fn])
通过不透明度的变化来实现所有匹配元素的淡入效果,并在动画完成后可选地触发一个回调函数。
fadeOut([speed],[easing],[fn])
通过不透明度的变化来实现所有匹配元素的淡出效果,并在动画完成后可选地触发一个回调函数。
<style>
.box{
width: 300px;
height: 300px;
background-color: red;
margin-bottom: 20px;
display: none;
}
</style>
<div class="box"></div>
<button id="btn1">淡入</button>
<button id="btn2">淡出</button>
<script src="./jquery-3.5.1/jquery-3.5.1.min.js"></script>
<script>
$(function(){
$('#btn1').click(function(){
$('.box').fadeIn()
})
$('#btn2').click(function(){
$('.box').fadeOut()
})
})
</script>
预览:

speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
<style>
.box{
width: 300px;
height: 300px;
background-color: red;
margin-bottom: 20px;
display: none;
}
</style>
<div class="box"></div>
<button id="btn1">淡入</button>
<button id="btn2">淡出</button>
<script src="./jquery-3.5.1/jquery-3.5.1.min.js"></script>
<script>
$(function(){
$('#btn1').click(function(){
$('.box').fadeIn(1000)
})
$('#btn2').click(function(){
$('.box').fadeOut(1000)
})
})
</script>
预览:

切换淡入淡出
fadeToggle([speed,[easing],[fn]])
通过不透明度的变化来开关所有匹配元素的淡入和淡出效果,并在动画完成后可选地触发一个回调函数。
$(function(){
$('#btn1').click(function(){
$('.box').fadeToggle(2500)
})
})
预览:

1.4 自定义动画
animate(params,[speed],[easing],[fn])
用于创建自定义动画的函数。
点击按钮后div元素的几个不同属性一同变化
<style>
#block{
border: 1px solid blue;
width: 300px;
}
</style>
<button id="go"> Run</button>
<br><br>
<div id="block">Hello!</div>
<script src="./jquery-3.5.1/jquery-3.5.1.min.js"></script>
<script>
$(function(){
//animate()自定义动画函数
$('#go').click(function(){
$('#block').animate({
width:'500px',
height:'200px',
fontSize:'20px',
borderWidth:'20px'
},1000)
})
})
</script>
预览:
