如何实现图片无间断滚动效果。

//2019.3.3   没有最好的程序,只有更好的程序。

如何实现图片无间断滚动效果。

个人设计思路:

①我们先把我们想要滚动的图片,放入一个列表(表格)中,按序排列好。然后再创建一个列表(表格),复制上一个列表内的内容。它们必须在同一行。

当然,上述两个列表(表格)都必须放在同一个div中,并且给div的样式中设置好宽高,以及overflow:hidden;(为了移动时隐藏多余部分)。(以上元素皆设置好id,name属性)

②先来说一些属性的用处  scrollLeft:用于获取横向滚动条向右滚动的距离; offsetWidth:它可以获取物体宽度的数值;

③下面来设计代码:我们目的是让图片不停向左滚动,也就是让滚动条不停向右滚动,那么,我们就需要一个方法来执行以下内容:

让scrollLeft的值在间隔时间内不停加固定值(如1),那么我们的内容是有限的,不可能一直自增,因此,必须返回到初始位置,啥时候返回呢?如下所述:

④在视觉上我们必须让效果看上去自然,,所以我们开始就设置了两个相同的内容放在了同一行。

所以,可以想象,当滚动条滚动到第一个列表(表格)的头部,也就是第一个列表(表格)的尾部时,返回到初始位置,这样是天衣无缝的。

⑤将上述过程重复执行,即完成了图片的无间断滚动。

//只有更好程序,没有最好的程序。如果有不同看法,欢迎讨论!

代码如下:

<body>
        <div id="imgdiv" onmouseover="pause()" onmouseout="abs()"  style="overflow: hidden; width: 250px;height: 100px;background-color: #7FFFD4;">
        	<table border="" cellspacing="" cellpadding="">
        		<tr>
        			<td width="500px" id="td1">
        				<table border="" cellspacing="" cellpadding="">
        				    <td><img src="img/1.jpg"></td>
        				    <td><img src="img/2.jpg"></td>
        				    <td><img src="img/3.jpg"></td>
        				</table>
        			</td>
        			<td id="td2" width="500px">
        				<table border="" cellspacing="" cellpadding="">
        				    <td><img src="img/1.jpg"></td>
        				    <td><img src="img/2.jpg"></td>
        				    <td><img src="img/3.jpg"></td>
        				</table>
        			</td>
        		</tr>
    
        	</table>
        </div>
	</body>
	<script type="text/javascript">
		var timer;
		   //下方所使用的id会自动获取
      function abs(){
      	if(td2.offsetWidth-imgdiv.scrollLeft<=0){
                             //滚动的距离-第二列的宽度,代表已经滚动到了第一列的末尾处
      		imgdiv.scrollLeft-=td1.offsetWidth;  //回到原点
      	}else{
      		imgdiv.scrollLeft++;     //否则一直滚动
      	}
      	timer =  setTimeout(abs,10);
      }
      function pause(){
      	clearTimeout(timer);
      }
      abs();
	</script>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值