使用style.backgroundPosition的Javascript计时器在ff&;中运行良好;chrome,在IE中不是那么幸运

使用style.backgroundPosition的Javascript计时器在ff&;中运行良好;chrome,在IE中不是那么幸运,javascript,css,internet-explorer,background-position,Javascript,Css,Internet Explorer,Background Position,我在js中制作了一个非常简单的倒计时计时器,它从数组中获取值,并将它们应用于元素背景位置属性(这将根据光标的值显示图像的不同部分) 代码如下: window.onload = timer; var curS = 5; function timer(){ var bgP = new Array("0 -1px","0 -22px","0 -45px","0 -67px","0 -89px"); if (curS <

我在js中制作了一个非常简单的倒计时计时器,它从数组中获取值,并将它们应用于元素
背景位置
属性(这将根据
光标
的值显示图像的不同部分)

代码如下:

window.onload = timer;
        var curS = 5;
        function timer(){
            var bgP = new Array("0 -1px","0 -22px","0 -45px","0 -67px","0 -89px");
            if (curS <= 5){
            document.getElementById("count").style.backgroundPosition = bgP[curS];
            }       
        curS--;
        setTimeout("timer()",1000);
        }

这也不起作用,计数器保持静止,有人能解释一下这个问题吗?非常感谢。

你的问题是数组索引:你从5开始,而你应该从4开始。当您试图将style.backgroundPosition设置为undefined时,Chrome会忽略它,但IE会抛出“无效参数”


在这里,我还想指出,在javascript中以字符串形式编写函数几乎是不可能的。您的超时应该是
setTimeout(timer,1000)
,使用直接函数引用而不是字符串。

不知道我是如何忽略了这个简单错误的!我对js还是相当陌生,所以我非常欣赏关于函数作为字符串的技巧!非常感谢你。
window.onload = timer;
        var curS = 5;
        function timer(){
            var bgPx = 0;
            var bgPy = new Array("-1px","-22px","-45px","-67px","-89px");
            if (curS <= 5){
            document.getElementById("count").style.backgroundPositionX = bgPx;
            document.getElementById("count").style.backgroundPositionY = bgPy[curS];
            }       
        curS--;
        setTimeout("timer()",1000);
        }