Firefox Игнорирование Javascript element.style.backgroundPosition - PullRequest
0 голосов
/ 21 января 2012

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 Ответ

1 голос
/ 21 января 2012

Вы пытались добавить px-единицу?

Кажется возможным дублировать: CSS / Javascript Как сделать этот фильм с фоновой позицией в Firefox, как в IE7 +? *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...