Firefox jquery scrollTo мерцание ошибка - PullRequest
5 голосов
/ 15 декабря 2009

Я видел довольно много тем, рассказывающих о мерцании в Firefox, но ни один из них не описывает проблему, с которой я сталкиваюсь.

У меня есть веб-сайт с горизонтальной прокруткой, меню с фиксированной позицией и плагин jquery .scrollTo для обработки кнопок «Следующая» и «Предыдущая». Это прекрасно работает в Chrome и Safari (не знаю о IE), но в Firefox каждый раз, когда вы прокручиваете вправо-влево со стрелками в правом верхнем углу и в углу, появляется мерцание.

См. Пример здесь

Я попытался установить для всех элементов, которые имеют фиксированную позицию, переполнение: авто, но это ничего не дало. Я не очень знаком с JS или Jquery, но знаю достаточно, чтобы что-то изменить. Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

11 голосов
/ 15 декабря 2009

Проблема в том, что вы не отменяете действие браузера по умолчанию в функции щелчка. Измените свой код на это, и мерцание исчезнет:

$(function(){
    $(".next").click(function(e) {
        $.scrollTo( '+=1000px', 600 );
        e.preventDefault();
    });
    $(".prev").click(function(e) {
        $.scrollTo( '-=1000px', 600 );
        e.preventDefault();
    });
});

Firefox пытается «прокрутить до #» и одновременно анимировать.

1 голос
/ 21 марта 2013

Сразу после моего комментария к закладке на странице в посте Дуга свет в моей голове включился! Надеюсь, вы сможете адаптироваться к своему сценарию, если вам нужна закладка

<a href="#gohere" class="mylink">Click</a>
...

$('.mylink').click(function(e) {
    e.preventDefault();
    var anchor = $(this).attr('href');
    $.scrollTo(anchor, 1000, {
        onAfter: function(){
          location.hash = anchor;
        }
    });   
});
...