為大家講解的JQuery動畫特效為手風琴,廢話不多說,先看最終實現效果圖。
一、實現原理分析
對應的立體圖:
二、 HTML程式碼分析
<body> <div id="container"> <ul id="content"> <li class="first"> <h3>真</h3> <div><img src="images/0.jpg"/></div> </li> <li class="second"> <h3>的</h3> <div><img src="images/1.jpg"/></div> </li> <li class="third"> <h3>爱</h3> <div><img src="images/2.jpg"/></div> </li> <li class="forth"> <h3>你</h3> <div><img src="images/4.jpg"/></div> </li> </ul> </div> </body>
1. id為container的div就是上面分析中的紅色區域。
2. id為content的ul就是用來存放所有的li。
3. 每個li就是一個紅色區域與對應圖片的組合。
三、CSS程式碼分析
*{margin: 0; padding: 0;} img{ border:0; } #container { width:680px; height: 300px; margin: 100px auto; position: relative; border:3px solid red; overflow: hidden; } #container #content { list-style: none; } #container #content li{ width:590px; height:300px; position: absolute; } #container #content li.second{ left:590px; } #container #content li.third{ left:620px; } #container #content li.forth{ left:650px; } #container #content li h3{ float:left; width: 24px; height:294px; border:3px solid blue; background-color: yellow; cursor: pointer; } #container #content li div{ float: left; width: 560px; height:300px; }
1. *和img標籤用來去除系統預設的間隙等效果。
2. #container就是在上面分析的可視區域,所以它的尺寸是 680 * 300,而且它是所有子元素的容器,所以它是相對定位(position: relative)。
3. #container #content就是去除掉ul預設的小圓點效果。
4. 所有的li採用絕對定位,並且它們的大小均為 590 * 300, 然後設定後面li的left值,並且設定li的h3(黃色區域)屬性漂浮。
當上面所有的css樣式設定完畢以後,最終呈現的效果就是分析圖中的效果。
四、JQuery程式碼分析
手風琴的js互動程式碼其實非常簡單,就是即時的改變對應li的絕對位置的left值就可以了,程式碼如下:
$(function(){ $("#container #content li.first h3").mouseenter(function(){ $("#container #content li.second").stop().animate({"left":590}, 1000); $("#container #content li.third").stop().animate({"left":620}, 1000); $("#container #content li.forth").stop().animate({"left":650}, 1000); }); $("#container #content li.second h3").mouseenter(function(){ $("#container #content li.second").stop().animate({"left":30}, 1000); $("#container #content li.third").stop().animate({"left":620}, 1000); $("#container #content li.forth").stop().animate({"left":650}, 1000); }); $("#container #content li.third h3").mouseenter(function(){ $("#container #content li.second").stop().animate({"left":30}, 1000); $("#container #content li.third").stop().animate({"left":60}, 1000); $("#container #content li.forth").stop().animate({"left":650}, 1000); }); $("#container #content li.forth h3").mouseenter(function(){ $("#container #content li.second").stop().animate({"left":30}, 1000); $("#container #content li.third").stop().animate({"left":60}, 1000); $("#container #content li.forth").stop().animate({"left":90}, 1000); }); });
以上就是本文的全部內容,希望對大家的學習有所幫助。