JavaScript:滚动效果

文末有完整示例代码 参考视频
4张图片轮流滚动,把四张图片放在4个<li>标签中,代码如下:
<body> <div id="div1"> <ul id="ul1"> <li><img src="./landscape/00.jpg"></li> <li><img src="./landscape/11.jpg"></li> <li><img src="./landscape/22.jpg"></li> <li><img src="./landscape/33.jpg"></li> </ul> </div> </body>下面在<style>中去掉默认的padding和margin,并且设置每个<li>的格式
*{ margin: 0px; padding: 0px; } li{ float: left; width: 250px; height: 130px; list-style: none; }每个<li>的宽度是250px,整个div的宽度应该设置为1000px,高度保持130px,使用margin: 200px auto;居中,位置属性设置为relative,溢出hidden
#div1{ width: 1000px; height: 130px; margin: 200px auto; position: relative; background-color: transparent; overflow: hidden; }<ul>本身的属性:位置属性设置为absolute,并且左、上坐标为0px
ul{ position: absolute; left: 0; top: 0; }主要代码
<script type="text/javascript"> window.onload = function(){ var oUl = document.getElementsByTagName("ul")[0]; var aLi = document.getElementsByTagName("li"); //获取ul对象,获取aLi对象 oUl.innerHTML = oUl.innerHTML + oUl.innerHTML; oUl.style.width = aLi[0].offsetWidth * aLi.length + 'px'; //将四张图片拓展为八张,同时重新设置ul宽度 function move(){ if(oUl.offsetLeft < -oUl.offsetWidth/2) { oUl.style.left = 0; } if(oUl.offsetLeft>0) { oUl.style.left = -oUl.offsetWidth/2+'px'; } oUl.style.left = oUl.offsetLeft-2+"px"; } var timer = setInterval(move,30); //以下代码作用:鼠标移到ul上面,暂停滚动;移开继续滚动 oUl.onmouseover = function(){ clearInterval(timer); } oUl.onmouseout = function(){ timer = setInterval(move,30); } } </script>完整示例代码
<!DOCTYPE html> <html> <head> <title>innerHTML</title> <style type="text/css"> *{ margin: 0px; padding: 0px; } #div1{ width: 1000px; height: 130px; margin: 200px auto; position: relative; background-color: transparent; overflow: hidden; } ul{ position: absolute; left: 0; top: 0; } li{ float: left; width: 250px; height: 130px; list-style: none; } </style> <script type="text/javascript"> window.onload = function(){ var oUl = document.getElementsByTagName("ul")[0]; var aLi = document.getElementsByTagName("li"); //获取ul对象,获取aLi对象 oUl.innerHTML = oUl.innerHTML + oUl.innerHTML; oUl.style.width = aLi[0].offsetWidth * aLi.length + 'px'; //将四张图片拓展为八张,同时重新设置ul宽度 function move(){ if(oUl.offsetLeft < -oUl.offsetWidth/2) { oUl.style.left = 0; } if(oUl.offsetLeft>0) { oUl.style.left = -oUl.offsetWidth/2+'px'; } oUl.style.left = oUl.offsetLeft-2+"px"; } var timer = setInterval(move,30); //以下代码作用:鼠标移到ul上面,暂停滚动;移开继续滚动 oUl.onmouseover = function(){ clearInterval(timer); } oUl.onmouseout = function(){ timer = setInterval(move,30); } } </script> </head> <body> <div id="div1"> <ul> <li><img src="./landscape/00.jpg"></li> <li><img src="./landscape/11.jpg"></li> <li><img src="./landscape/22.jpg"></li> <li><img src="./landscape/33.jpg"></li> </ul> </div> </body> </html>

浙公网安备 33010602011771号