簡單無縫滾動輪播圖存在很多漏洞,就是后期增加圖片時會很不方便,需要改動的地方也很多,耦合性也很強簡單實現網頁圖片無縫滾動代碼,只適用于一部分程序,所以我們可以通過改動圖片結構和計算折算點的方式,升級代碼。
原簡單的滾動輪播代碼
js;">Document <script> //獲取元素 var scroll = document.getElementById("scroll"); var munit = document.getElementById("munit"); var li = munit.children; // 進行滾動 var nowLeft = 0; //要找到ul元素運動的折返點 var back = -1470;//圖和邊框是li的寬度,展示的有4張圖,所以折返點就是1260 //定時器 var timer = setInterval(run,20); // 鼠標移上scroll停止 scroll.onmouseover = function(){ clearInterval(timer); } // 移開輪播 scroll.onmouseout = function(){ timer = setInterval(run,20); } //運動函數 function run(){ nowLeft -= 2; //判斷是否走到了折返點,走到了,則瞬間切換到0位置 if(nowLeft <= back){ nowLeft = 0;
} munit.style.left = nowLeft + "px"; } </script>
在
結構給ul新增的一個父級div,這樣之后添加圖片,后期通過獲取ul寬度就可以了計算折算點
1、折返點計算需要通過Js自動計算
var back = -munit.;//元素左移,值為負數
2、自動生成另一組對應的圖片結構 li
munit. = munit. + munit.;//這樣就會增加一組li標簽,后期增加圖片也會隨之增加
修改部分代碼,
css改寫部分: /*給ul新增的一個父級div,這樣添加圖片后期獲取ul寬度 就可以了 */ .scroll .inner{ position: relative; width: 5000px; } .scroll ul{ position: absolute; height: 130px; top: 0; left: 0; list-style: none;body改寫部分:
JS改寫部分: <script> //獲取元素 var scroll = document.getElementById("scroll"); var munit = document.getElementById("munit"); //改寫部分 //1 折返點計算需要通過Js自動計算 var back = -munit.offsetWidth;//元素左移,值為負數 //2 自動生成另一組對應的圖片結構 li munit.innerHTML = munit.innerHTML + munit.innerHTML;
// 進行滾動 var nowLeft = 0; //定時器 var timer = setInterval(run,20); // 鼠標移上scroll停止 scroll.onmouseover = function(){ clearInterval(timer); } // 移開輪播 scroll.onmouseout = function(){ timer = setInterval(run,20); } //運動函數 function run(){ nowLeft -= 1; //判斷是否走到了折返點,走到了,則瞬間切換到0位置 if(nowLeft <= back){ nowLeft = 0; } munit.style.left = nowLeft + "px"; } </script>