国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery動畫效果實現圖片無縫連續滾動

2019-11-20 10:48:57
字體:
來源:轉載
供稿:網友

本文實例介紹了jQuery動畫效果實現圖片無縫連續滾動的詳細代碼,分享給大家供大家參考,具體內容如下

效果圖如下:

一、HTML代碼

<body>   <div id="container">     <ul id="content">       <li><a href="#"><img src="images/0.png"/></a></li>       <li><a href="#"><img src="images/1.png"/></a></li>       <li><a href="#"><img src="images/tewu.png"/></a></li>       <li><a href="#"><img src="images/2.png"/></a></li>       <li><a href="#"><img src="images/tewu.png"/></a></li>       <li><a href="#"><img src="images/3.png"/></a></li>       <li><a href="#"><img src="images/4.png"/></a></li>     </ul>   </div> </body> 

1. id為container的div是最外層的包裝,用來控制滾動區域顯示的具體位置。
2. id為content的ul用來包裝那些需要滾動的圖片。

3. li元素就是用來包裝具體的圖片。

二、CSS代碼

*{margin: 0; padding: 0;}  img{   border:0; }  #container{   width:800px;   height: 130px; <span style="white-space:pre">  </span>margin:100px auto;   border:3px solid blue;   overflow: hidden;   position: relative; }  #container ul{   list-style: none;   width:10000px;   position: absolute; }  #container ul li{   float:left;   margin-right: 20px; } 

這里說明一點,ul 的 width為什么設置為10000px。 因為無縫連續滾動的實現原理,就是在現有顯示圖片的基礎上克隆一份,并且拼接在顯示圖片的后面,但由于顯示圖片的總寬度是未知的,所以為了安全性,最好將ul的width寬度設置比較大些。

三、無縫連續滾動原理分析

四、JQuery實現代碼

<script type="text/javascript"> /* window.onload比 $(function(){}) 加載的更晚一些,這樣那些寬度的計算在Chrome中就可以準確計算了*/    window.onload = function(){      /*計算一個segment的寬度*/      var segmentWidth = 0;     $("#container #content li").each(function(){       segmentWidth+= $(this).outerWidth(true);     });      $("#container #content li").clone().appendTo($("#container #content"));      run(6000);      function run(interval){       $("#container #content").animate({"left":-segmentWidth}, interval,"linear",function(){         $("#container #content").css("left",0);         run(6000);       });     }      $("#container").mouseenter(function(){       $("#container #content").stop();     }).mouseleave(function(){       var passedCourse = -parseInt($("#container #content").css("left"));       var time = 6000 * (1 - passedCourse/segmentWidth);       run(time);     });   };      </script> 

1. 先通過each遍歷所有的li元素,計算出它們寬度之和。
2. 拷貝一份圖片到現有圖片的后面,原理分析圖的"圖一"所示。

3. 設置6秒鐘滾動完界面上面現有的圖片,滾動完畢后,通過設置content的left值,將其整體拉回到初始狀態,原理分析圖的"圖二"所示。然后遞歸調用run方法,完成無限滾動。

4. 當鼠標經過滾動區域的時候,動畫立刻停止; 當鼠標離開的時候,動畫繼續執行。

關于動畫繼續執行的代碼,如下圖分析:

以上就是jQuery實現圖片無縫連續滾動的代碼,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 修武县| 康保县| 新民市| 舒兰市| 昭平县| 清水河县| 柘城县| 南靖县| 双江| 新津县| 开远市| 宁陵县| 栾川县| 高邮市| 新沂市| 正镶白旗| 滦南县| 达州市| 龙海市| 册亨县| 遂昌县| 同心县| 夏邑县| 桓台县| 珠海市| 禄劝| 玉环县| 潍坊市| 兴业县| 蓝山县| 象州县| 铁岭市| 个旧市| 赤壁市| 永定县| 通河县| 彭州市| 化州市| 安顺市| 罗甸县| 平远县|