时间:2021-05-25
随便打开一个网页,基本上都会看到无缝滚动或者轮播图,比如淘宝还有360官网的首页
观察这些轮播图可以发现图片可以来回循环地切换,那么是怎样做到的呢?
做到轮播图或者说无缝滚动主要有两种方式,一种是通过对图片的明暗即透明图的改变来显示或隐藏图片,另一种是通过运动框架,将图片显示在可视区域。这两种方式都会用到同一个东西,那就是定时器。
JavaScript中的定时器有两种,1.setInterval();2.setTimeout();相对应的关闭定时器也有两种方法,clearInterval()和clearTimeout()。两种定时器的区别是前者可以执行多次,而后者只执行一次。
这次只说无缝滚动,下篇介绍轮播图。
实现简单的无缝滚动的代码如下:
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8" /><style>div{position:relative;width:630px;height:220px;border:solid 2px black;overflow:hidden;}ul{position:absolute;top:10px;left:0;}img{width:200px;height:200px;float:left;margin-right:10px;border:2px solid yellow;}li{list-style:none;margin:0;padding:0;}ul{margin:0;padding:0;}</style><script>window.onload=function(){var oUl=document.getElementById("main");var aLi=oUl.getElementsByTagName("img");var oInput=document.getElementsByTagName("input")[0];oUl.innerHTML+=oUl.innerHTML;oUl.style.width=aLi.length*aLi[0].offsetWidth+"px";var timer=null;setInterval(function(){oUl.style.left=oUl.offsetLeft-8+"px";if(oUl.offsetLeft<-oUl.offsetWidth/2){oUl.style.left="0px";}},30);};</script></head><body><div><ul id="main"><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><li><img src="../img/9.jpg"></li></ul></div></div></body></html>/-----------------------------------------------------------------------------------------------------------------------------------------------------------/
无缝滚动的布局比较简单,下面主要讲解JS部分内容:
首先分别获取到ul和li,再将ul里面的内容复制一份,通过js动态修改ul的宽度(如果要做到上下无缝滚动,则修改其宽度),最后开定时器,代码中是每隔30微秒ul向左移动8个像素,而当ul的可视左边距小于ul总长度的一半时,使其变为0。由于计算机的运行速度非常快,所以几乎感觉不到这一变化。我们看到的只是图片不断地向左移动,无休止的运动。
以上所述是小编给大家介绍的关于网页中的无缝滚动的js代码,希望对大家有所帮助!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
js替代marquee实现图片无缝滚动可能大家都碰到过,当marquee中滚动的是图片的时候,滚到终点的时候直接就跳回到起点了,而不像文字那样可以无缝滚动,下面
效果图:html代码:复制代码代码如下:无缝滚动,向右滚动无缝滚动,向左滚动111111111111222222222222333333333333344444
一款适用于方案和图片的JS无缝滚动代码,可控制向左或向右滚动,代码不算复杂,而且本无缝滚动代码兼容性也挺好,你几乎不需要修改什么代码,就能使用了。测试时候把那些
本文实例为大家分享了js无缝滚动效果实现代码,供大家参考,具体内容如下无缝滚动#warp{width:1200px;height:300px;overflow:
本文实例为大家分享了js无缝循环滚动实现代码,供大家参考,具体内容如下1、图片格式:260*400.2、使用循环定时器轻松实现无缝滚动.row{width:12