Javascript - 图像不循环/旋转

时间:2011-12-02 02:19:30

标签: 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 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>

当我取消注释警告框时,脚本就像它一样工作。当我评论它们时,旋转似乎停止了。关于什么是真实的以及如何解决它的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:1)

也许你想改变这一行:

window.setTimeout("RotateImages(" + (Start+1) + ")", delay);

成:

window.setTimeout("RotateImages(" + (Start+1) + ", " + delay + ")", delay);

以便下次调用RotateImages时,它将保持延迟。

答案 1 :(得分:1)

需要考虑的一个基本问题是setTimeout。第一个参数可以是对函数的引用,无论是实际引用还是字符串引用,但您不能将参数与其一起传递。

要执行您想要的操作,您需要将匿名函数传递给setTimeout。另外,Riyono也应该通过delay

setTimeout(function(){ RotateImages(Start++, delay) }, delay);

就警报问题而言,我不知道该告诉你什么。但我知道上述内容将纠正一些问题。