源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Javascript 实现图片无缝滚动

  • 时间:2020-11-26 00:47 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Javascript 实现图片无缝滚动
效果 : 鼠标移入图片 停止滚动, 鼠标移出自动滚动 可以调整向左或右方向滚动
[url=javascript:;]         <a href="javascript:;">向右走</a>         <div id="div1">             <ul>                 <li>                     <img src="img/无缝滚动/1.jpg" />                 </li>                 <li>                     <img src="img/无缝滚动/2.jpg" />                 </li>                 <li>                     <img src="img/无缝滚动/3.jpg" />                 </li>                 <li>                     <img src="img/无缝滚动/4.jpg" />                 </li>             </ul>         </div>     </body>
以上是一个简单的布局,下面是主要的Javascript 代码
<script type="text/javascript">             window.onload = function() {                 var oDiv = document.getElementById("div1");                 var oUl = oDiv.getElementsByTagName('ul')[0];                 var aLi = oUl.getElementsByTagName('li');                 var speed = 2;                            oUl.innerHTML += oUl.innerHTML;                 oUl.style.width = aLi[0].offsetWidth * aLi.length + 'px';                 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 + speed + 'px';                 }                 var timer = setInterval(move, 30);                 oDiv.onmouseover = function() {                     clearInterval(timer);                 };                 oDiv.onmouseout = function() {                     timer = setInterval(move, 30);                 };                 document.getElementsByTagName('a')[0].onclick = function() {                     speed = -2;                 };                 document.getElementsByTagName('a')[1].onclick = function() {                     speed = 2;                 };             }         </script>
简单讲下思路: 首先设置ul 里面的图片一共有8张 oUl.innerHTML += oUl.innerHTML; 在 计算ul的宽度为 li的实际宽度*8 之后将 多余的内容隐藏 注意 : oUl.offsetLeft 肯定是负值 所以判断的时候不要把负号漏掉
[u]复制代码[/u] 代码如下:
if (oUl.offsetLeft < -oUl.offsetWidth / 2) {         oUl.style.left = '0';                   }
这段表示  图片滚动到一半了,迅速把图片拉回来,因为程序执行的太快,所以几乎看不出来 实现无缝滚动 最后使用 变量 speed 来控制左右方向的滚动。 以上代码只是实现了最基本的功能,小伙伴们可以在此基础上继续完善。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部