今天下午在写图片轮播的时候,想让“当鼠标放在图片上时,图片不轮播”
当我设置了鼠标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.οnmοuseοver= function(){
time=1500000;
}
hh.οnmοuseleave= 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]];
}