本文实例为大家分享了jQuery实现手风琴效果的具体代码,供大家参考,具体内容如下
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
*{
padding:0;
margin:0;
}
ul,ol{
list-style: none;
}
.box{
width: 900px;
height: 300px;
border:1px solid #333;
margin:50px auto;
position: relative;
overflow: hidden;
}
.box ul li{
position: absolute;
width: 560px;
height: 300px;
top:0px;
}
.box ul li.no0{
left:0px;
}
.box ul li.no1{
left:180px;
}
.box ul li.no2{
left:360px;
}
.box ul li.no3{
left:540px;
}
.box ul li.no4{
left:720px;
}
/*蒙版效果*/
.mask{
position: absolute;
width: 560px;
height: 300px;
top:0;
left: 0;
background-color: rgba(0,0,0,.5);
}
</style>
</head>
<body>
<div class="box" id="box">
<ul>
<li class="no0">
<div class="mask"></div>
<a href=""><img src="%20images/0.jpg" alt=""></a>
</li>
<li class="no1">
<div class="mask"></div>
<a href=""><img src="%20images/1.jpg" alt=""></a>
</li>
<li class="no2">
<div class="mask"></div>
<a href=""><img src="%20images/2.jpg" alt=""></a>
</li>
<li class="no3">
<div class="mask"></div>
<a href=""><img src="%20images/3.jpg" alt=""></a>
</li>
<li class="no4">
<div class="mask"></div>
<a href=""><img src="%20images/4.jpg" alt=""></a>
</li>
</ul>
</div>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
<script type="text/javascript">
// 所有li添加鼠标进入事件
$("li").mouseenter(function(){
// 将鼠标进入的li序号提前保存
var idx = $(this).index();
// 图片序号小于idx往左移动85 * i。
$("li:lt(" + (idx + 1 )+ ")").each(function(i){
// each中i表示遍历到对象的序号。
// console.log(i);
$(this).stop(true).animate({"left": 85 * i},300);
});
// 图片序号大于idx往右移动
$("li:gt(" + idx + ")").each(function(i){
// console.log(i);
$(this).stop(true).animate({"left": 560 + 85 * (idx + i)},300);
});
// 鼠标悬停的li变高亮
$(this).children(".mask").stop(true).fadeOut();
// 排他
$(this).siblings().children(".mask").stop(true).fadeIn();
});
//鼠标离开恢复状态
$(".box").mouseleave(function(){
// 所有li恢复180位置
$("li").each(function(i){
// console.log(i)
$(this).stop(true).animate({"left": 180 * i},300);
});
// 加上蒙版
$("li").children(".mask").stop(true).fadeIn();
});
</script>
</body>
</html>