Javascript-图像不循环/旋转
我正在编写一个脚本,在javascript中旋转/循环浏览图像,同时遵守循环浏览图像次数的限制。我所拥有的如下:Javascript-图像不循环/旋转,javascript,image,Javascript,Image,我正在编写一个脚本,在javascript中旋转/循环浏览图像,同时遵守循环浏览图像次数的限制。我所拥有的如下: <a id="imageurl"><img id="Rotating1" border="0"></img></a> <script language="JavaScript"> var delay = 3000; //6000 = change to next image after 6 seconds var cyc
<a id="imageurl"><img id="Rotating1" border="0"></img></a>
<script language="JavaScript">
var delay = 3000; //6000 = change to next image after 6 seconds
var cycles = 2;
var currentCycle = 0;
function RotateImages(Start, delay)
{
var a = new Array("frown.gif","grim.gif","smile.gif", "bomb.gif");
var c = new Array("url1", "url2", "url3", "url4");
var b = document.getElementById('Rotating1');
var d = document.getElementById('imageurl');
var totalCycles = cycles * a.length;
// alert ("currentCycle: " + currentCycle);
// alert ("totalCycles: " + totalCycles);
if (Start>=a.length)
Start=0;
b.src = a[Start];
d.href = c[Start];
if (currentCycle < totalCycles) {
window.setTimeout("RotateImages(" + (Start+1) + ")", delay);
currentCycle++;
}
}
RotateImages(0, delay);
</script>
当我取消对警报框的注释时,脚本的行为就像它在工作一样。当我把它们注释掉时,旋转似乎停止了。有没有关于到底发生了什么以及如何修复的想法
谢谢 也许您想更改此行:
window.setTimeout("RotateImages(" + (Start+1) + ")", delay);
进入:
因此,下次调用RotateImages时,它将保持延迟。需要考虑的一个基本问题是设置超时。第一个参数可以是对函数的引用,无论它是实际引用还是字符串引用,但不能同时传递参数 要执行所需操作,需要向setTimeout传递一个匿名函数。此外,Riyono认为您还应该通过
延迟
setTimeout(函数(){RotateImages(Start++,delay)},delay)代码>
至于你的警报问题,我不知道该告诉你什么。但是我知道上面提到的会纠正一些问题。你说的“像工作一样”是什么意思?你是说它真的可以工作,还是说你看到了警报,但它不能完全工作?起初我不理解你的解释,但后来我读了更多关于setTimeout的内容,有了更好的理解。我仍然不明白为什么在函数中传递参数会起作用,而您却希望它不会起作用。有什么想法吗?我想了解这一点,如果这将导致问题,请更正我的代码。谢谢
window.setTimeout("RotateImages(" + (Start+1) + ", " + delay + ")", delay);