jQuery的自定义动画animate的语法
$(selector).animate({params},speed,callback);
1、 params (必需)参数定义形成动画的 CSS 属性,以对象形式书写。
2、 speed (可选)参数规定效果的时长。它可以取以下值:“slow”、“fast” 或毫秒。
3、callback(可选) 参数是动画完成后所执行的函数名称。
animate的简单用法:(点击按钮后让div在一秒内移动到距离左边300px右边300px的地方,宽高变为300px)
$(function() {
$("button").click(function() {
$("div").animate({
width:300,
height:300,
left:300,
top:300,
},1000)
})
})
模仿王者手风琴效果
CSS代码:
* {
margin: 0;
padding: 0;
}
.king {
width: 80%;
height: 90px;
margin: auto;
background-color: #0d3354;
}
.king ul li {
position: relative;
float: left;
margin-right: 10px;
width: 90px;
height: 90px;
list-style: none;
}
.small {
position: absolute;
left: 0;
right: 0;
width: 90px;
height: 90px;
}
.big {
position: relative;
height: 90px;
display: none;
}
.king .current {
width: 196px;
}
.current .small {
display: none;
}
.current .big {
display: block;
}
HTML代码:
<div class="king">
<ul>
<li class="current">
<a href="#">
<img src="img/1.png" class="big">
<img src="img/1-small.png" class="small">
</a>
</li>
<li>
<a href="#">
<img src="img/2.jpg" class="big">
<img src="img/2-small.png" class="small">
</a>
</li>
<li>
<a href="#">
<img src="img/3.jpg" class="big">
<img src="img/3-small.png" class="small">
</a>
</li>
</ul>
</div>
JS代码:
<script src="../../../jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function() {
$(".king li").mouseenter(function() {
// 鼠标放在某一个li上时自己的宽度变成196px,大图片淡入,小图片淡出
$(this).stop().animate({
width:196
}).find(".big").stop().fadeIn().siblings(".small").stop().fadeOut();
// 其他兄弟节点宽度变为90px,大图片淡出,小图片淡入
$(this).siblings("li").stop().animate({
width:90
}).find(".big").stop().fadeOut().siblings(".small").stop().fadeIn();
})
})
效果如下:
鼠标悬浮在li上时小图片淡出,大图片淡入