手风琴案例
案例分析:
建一个ul,这个ul的宽为1020px,高为450px,让这个ul水平居中,这个ul里面有五个li,每个li的宽度为200px,分别给每个li加背景颜色,让他们向左浮动。
当鼠标移动到某个li上方时,该图片宽度变成500px,其余宽度平均为125px。
当鼠标离开 ul时,就恢复到初始状态,所有li恢复平均宽度200px
关键代码
利用jQuery中兄弟关系,实现效果,当鼠标移到我的上方时,我变成什么样,其他兄弟变成其他样子,最后鼠标移开恢复成原来的样子
<script src="js/jquery.js"></script>
<script>
$('ul>li').mouseenter(function(){
$(this).stop(true)
.animate({
width:"500px"
})
.siblings().stop(true)
.animate({width:'125px'});
});
$('ul').mouseleave(function(){
$(this).find('li').animate({width:'200px'});
});
</script>
为了防止出错,当鼠标从当前li离开到下一个li是,当前li动画停止,防止影响下一个li的运行!~~
所有代码
<style>
ul,li{list-style-type: none;padding: 0;margin: 0;}
ul{width: 1020px;height: 450px;margin: 50px auto;}
ul>li{width:200px;height: 100%; float: left;}
</style>
<body>
<ul>
<li style="background: skyblue;"></li>
<li style="background: tomato;"></li>
<li style="background: pink;"></li>
<li style="background: red;"></li>
<li style="background:blue;"></li>
</ul>
<script src="js/jquery.js"></script>
<script>
$('ul>li').mouseenter(function(){
$(this).stop(true)
.animate({
width:"500px"
})
.siblings().stop(true)
.animate({width:'125px'});
});
$('ul').mouseleave(function(){
$(this).find('li').animate({width:'200px'});
});
</script>
</body>