Firefox忽略Javascript element.style.backgroundPosition

时间:2012-01-21 03:15:46

标签: javascript firefox

Firefox似乎忽略了我程序中的一些JavaScript代码。下面的代码用于更改元素#navi li a的背景位置,您看到的for循环是更改图像和文本的计时器的一部分;以及#navi(这是一个精灵)的背景位置。当你达到条件if(j === count)时会出现问题。 Firefox识别初始backgroundPosition属性并将精灵设置为-12像素,但该元素不再处于活动状态。为了更好地了解发生的情况,精灵是两个圆圈的11 x 24像素,0 0处的圆圈是黄色或活动的,0-12的圆圈是白色或非活动的。当计时器运行时,Firefox会将所有圆圈更改为黄色,但当它们不再处于活动状态时,不会将它们重置为白色。 IE6和Safari的代码按预期工作,Firefox是目前唯一有此问题的浏览器。

    for (j=1;j<4;j++){

    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
        var ieversion=new Number(RegExp.$1) 
        if (ieversion>=6){
            document.getElementById("navi"+j).style.backgroundPosition = "0 -12";                       
            document.getElementById("image_description"+j).style.visibility = "hidden";
        }
    } else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ 
        var ffversion=new Number(RegExp.$1)
        if (ffversion>=3){
            document.getElementById("navi"+j).style.backgroundPosition = "0 -12";                       
            document.getElementById("image_description"+j).style.visibility = "hidden";
        }
    } else { //Safari
            document.getElementById("navi"+j).style.backgroundPosition = "bottom bottom";                                   
            document.getElementById("image_description"+j).style.visibility = "hidden";     
    }

    if (j===count){

            if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
                var ieversion=new Number(RegExp.$1) 
                if (ieversion>=6){
                    document.getElementById("navi"+j).style.backgroundPosition = "0 0";         
                    document.getElementById("image_description"+j).style.visibility = "visible";
                }
            } else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ 
                var ffversion=new Number(RegExp.$1)
                if (ffversion>=3){
                    document.getElementById("navi"+j).style.backgroundPosition = "0 0";                 
                    document.getElementById("image_description"+j).style.visibility = "visible";
                }
            } else { //Safari
                document.getElementById("navi"+j).style.backgroundPosition = "top top";         
                document.getElementById("image_description"+j).style.visibility = "visible";                
            }               
        }   
    }   

1 个答案:

答案 0 :(得分:1)