setInterval();与setTimeout();的结合用法【js】

来源:互联网 发布:java中wait怎么用 编辑:程序博客网 时间:2024/05/22 02:28

今天下午在写图片轮播的时候,想让“当鼠标放在图片上时,图片不轮播”

当我设置了鼠标over图片使time增加了几百倍。

然而由于我以前用的setInterval();调用的轮播效果,

我的图片依旧在轮播。。。time的该表已经不影响轮播效果的调用。。。

查阅了资料我对它们的理解是这样的:

setInterval()和 setTimeout()其实都是只调用了一次而已。。(正是因为这样,所以当我改变time值后,setInterval()还是以原来的time值进行循环操作)

区别就是setInterval是无限循环里面的步骤,直到出现一个使其停止的指令。

而setTimeout只执行一次里面的步骤----


然后我们要想让“当鼠标放在图片上时,图片不轮播”

可以用setInterval()调用setTimeout()---

每次调用setTimeout()时,time值就会读一次-.-这样改变time值就有了作用---------


方法如下:

var time = 1500;var pian= new Array("photo/012.jpg","photo/013.jpg","photo/014.jpg","photo/015.jpg","photo/016.jpg","photo/017.jpg","photo/018.jpg","photo/021.jpg","photo/022.jpg");var xi=new Array("photo/011.jpg","photo/019.jpg","photo/020.jpg","photo/023.jpg","photo/026.jpg","photo/027.jpg","photo/028.jpg");var hh = document.getElementById("hh");var ll= document.getElementById("ll");var heng = document.getElementById("heng");var wei= new Array(0,0);hh.onmouseover= function(){time=1500000;}hh.onmouseleave= function(){time=1500;}setInterval(change,time);function change (){setTimeout(change1,time);setTimeout(change2,time*5);}function change1 (){wei[0]=(wei[0]+1)%pian.length;hh.src=pian[wei[0]];}function change2 (){wei[1]=(wei[1]+1)%xi.length;ll.src=xi[wei[1]];}


0 0
原创粉丝点击