1. 程式人生 > >簡單易用的無縫滾動

簡單易用的無縫滾動

要保證所用的圖片的大小是一致的

我的圖片大小是200px*100px

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
img,ul,li,div,body{margin: 0;padding: 0;}
img{vertical-align: top;}
a{text-decoration: none; color: black;}
ul li{float: left;}
ul{list-style: none;}
#div1{

width:800px;
height: 100px;
margin: 100px auto;
position: relative;
overflow: hidden;
}
#div1 ul{
position: absolute;left: 0;top: 0;
}
#div1 ul li{
width: 200px;
height: 100px;
}
</style>
<script>
window.onload=function(){
var oDiv=document.getElementById('div1');
var oUl=oDiv.getElementsByTagName('ul')[0];
var aLi=oUl.getElementsByTagName('li');
var aA=document.getElementsByTagName('a');

var speed=2;  //移動速度 初始值為向右移動

oUl.innerHTML=oUl.innerHTML+oUl.innerHTML; //把ul的四張圖片變為兩個四張 即八張 連線在一起
oUl.style.width=aLi[0].offsetWidth*aLi.length+'px';   //ul的寬度為八張圖片的寬度

function move(){
if(oUl.offsetLeft<-oUl.offsetWidth/2)   //向左移動的函式
//當ul的第八章圖片將要移出來時,ul的left為-800時,八張圖片全部移動了一遍
//<-800時,用第一組的四張圖片立即覆蓋第二組的四張圖片
{
oUl.style.left='0';
}
if(oUl.offsetLeft>0)     //向右移動
{
oUl.style.left=-oUl.offsetWidth/2+'px';
}
oUl.style.left=oUl.offsetLeft+speed+'px';

}

var timer=setInterval(move,30);//定時器
oDiv.onmouseover=function()  //滑鼠移入時 關閉定時器,停止移動
{
clearInterval(timer);
};
oDiv.onmouseout=function()  //滑鼠移出時 重啟定時器,開始移動
{
timer=setInterval(move,30);
};

aA[0].onclick=function()  //新增點選事件 向左走
{
speed=-2;
}
aA[1].onclick=function()   //點選事件 向右走
{
speed=2;
}
}
   
</script>
</head>
<body>
<a href="javascript:;">向左走</a>
<a href="javascript:;">向右走</a>


<div id="div1">
<ul>
<li><img src="img/Zyx1.jpg"/></li>
<li><img src="img/Zyx2.jpg"/></li>
<li><img src="img/Zyx3.jpg"/></li>
<li><img src="img/Zyx4.jpg"/></li>
</ul>
</div>
</body>
</html>