手風琴特效的實現
實現手風琴特效,先講一下大致的思路.
1.用一個大的div 包裹住一個ul ,ul ,裏面再接四個小的li,
html代碼結構大致如下,設置背景色是爲了看出效果,最後一個是默認展開,可以自己隨意設置 It’s easy
<div>
<ul>
<li style="background-color:lawngreen ;"></li>
<li style="background-color:lightblue;"></li>
<li style="background-color:lightcyan;"></li>
<li style="background-color:lightgray;"></li>
<li style="background-color:lightpink;width: 800px;"></li>
</ul>
</div>
2.css樣式的設計,再次聲明由於沒有圖片這裏就只能靠背景顏色來展示效果了,記得在實際運用過程中,是不會使用border,要注意啦,盒子模型的大小是由,maggin +border +padding+context 所以用背景代替border
*{
margin: 0;
padding: 0;
}//慣例去邊距
img{
border:none;height: 400px;width: 800px;
}//爲有圖片的小夥伴準備的樣式
ol, ul ,li{list-style: none;}
div{
width:1000px;//五張圖的寬度和
height: 400px;
margin:50px auto;
overflow:hidden;
}
div li {
width:50px;//五張圖,有一張是展開的800px,其餘的都是50px
height: 400px;
float:left;
}
3,好了. 佈局完成了,該上了`這裏jquery的代碼了
$("li").mouseover(function(){
$(this).animate({"width":"800px"},400).siblings('li').animate({"width":"50px"},400)
})
哈哈,果真就是三行,不過有個小bug ,我就不說出來了。
最後上一個完整的代碼,可以直接copy過去運行看效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>手風琴</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
img{
border:none;height: 400px;width: 800px;
}
ol, ul ,li{list-style: none;}
div{
width:1000px;
height: 500px;
margin: auto;
overflow:hidden;
}
div li {
width:50px;
height: 500px;
float:left;
}
</style>
</head>
<body>
<div>
<ul>
<li style="background-color:lawngreen ;"></li>
<li style="background-color:lightblue;"></li>
<li style="background-color:lightcyan;"></li>
<li style="background-color:lightgray;"></li>
<li style="background-color:lightpink;width: 800px;"></li>
</ul>
</div>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$("li").mouseover(function(){
$('div>ul>li').finish();
$(this).animate({"width":"800px"},500).siblings('li').animate({"width":"50px"},500)
})
</script>
</body>
</html>