html页面中实现图片无间断滚动方法

发布时间:2020-12-22编辑:脚本学堂
首先,图片是从左向右依次运动,是图片的外框的scrollLeft值在不断地改变,我就可以通过外框的scrollLeft值来让图片无间断的动起来,给他们设置计时器来控制他们的运动、运动速度、以及停止,这样就实现了图片的无间断滚动,这种写法是最常见的图片无间断滚动的一种写法,看下文详细的介绍。

下面首先要实现图片的无间断滚动,然后还要实现当外框的scrollLeft值正好运动的是一个图片的宽度时,图片会暂停一秒钟之后在继续这个运动,我给img1标签里插入一系列的图片,而img2标签里则是采用innerHTML的方法把img1里面的图片插入img2里,img2最好不要与img1的图片不相同,这样的无间断滚动在两个标签内图片交汇处会有一小段时间的间隔,看下面的代码:
HTML代码:
 

复制代码 代码示例:

<div id="out">

<div id="outFlsh">

<div id="img1">

<img src="images/6.gif" alt="动画"/>

<img src="images/7.gif" alt="动画"/>

<img src="images/8.gif" alt="动画"/>

<img src="images/9.gif" alt="动画"/>

<img src="images/10.gif" alt="动画"/>

<img src="images/11.gif" alt="动画"/>

<img src="images/12.gif" alt="动画"/>

<img src="images/13.gif" alt="动画"/>

</div>

<div id="img2">

</div>

</div>

</div>

CSS代码:

      

复制代码 代码示例:

#out{width:1200px;height:320px;overflow:hidden;margin:0px auto;margin-top:30px;}

       #outFlsh{width:3840px;height:320px;}

       #img1,#img2{width:1920px;height:320px;float:left;}

      img{border:0px;float:left;width:240px;height:320px;}

JS代码:

            

复制代码 代码示例:

<script type="text/javascript">

var img1=document.getElementById('img1');

var img2=document.getElementById('img2');

var out=document.getElementById('out');

var imgs=document.getElementsByTagName('img');

img2.innerHTML=img1.innerHTML;//在img2里面插入img1的内容;

var t1=null;

var t2=null;

function moving()

{

if(out.scrollLeft>img1.offsetWidth)//当滚动条滚动的距离大于包含图片的容器的宽时,滚动条从头开始运动;

{

out.scrollLeft=0;

}

else

{

out.scrollLeft+=5;//当滚动条滚动的距离是在包含着图片的容器宽的范围内时,滚动条按照每25毫秒5px的距离来走;

}

if(out.scrollLeft%imgs[0].offsetWidth==0)//当滚动条滚动的距离与图片的宽度求模,结果为0时,滚动条暂停1s后再运动;

{

clearInterval(t1);

t2=setTimeout('t1=setInterval(moving,25)',1000);

}

}

t1=setInterval(moving,25);

img1.onmouseover=function()//鼠标放上去停止,即清除计时器

{

clearInterval(t1);

clearTimeout (t2);

}

img1.onmouseout=function()//鼠标移走运动,即触发计时器

{

t1=setInterval(moving,25);

}

img2.onmouseover=function()

{

clearInterval(t1);

clearTimeout (t2);

}

img2.onmouseout=function()

{

t1=setInterval(moving,25);

}

</script>