JQuery слайд мигает / мигает проблема в Firefox Ubuntu - PullRequest
0 голосов
/ 08 декабря 2010

У меня есть список <ul>, который немного длинен. Когда вы расширяете (сдвигаете вниз) элементы списка, браузер НЕ прокручивает вниз, и все в порядке. Когда вы сокращаете этот список элементов, прокрутка браузера вверх мигает / мигает A lot при этом.

  • Это не происходит в MAC Firefox.
  • Ни в Windows (по крайней мере, в тех версиях, которые я мог протестировать)
  • Это серьезно происходит в Firefox Linux (Ubuntu).

Кто-нибудь имел эту проблему раньше? Если так, что мы можем сделать, чтобы решить это?

Вот пример кода для лучшего понимания:

$('#btCatA').click(function() {
    $('#btCatA').toggleClass('selec');
    $('#listcatA').slideToggle('slow', function() {
        // ...
    });
});

1 Ответ

1 голос
/ 08 декабря 2010

Возможно, вы могли бы предотвратить это, уменьшив свойство scrollTop объекта window на высоту этого элемента до того, как сдвинет элементы списка вверх. У jQuery есть метод для этого: .scrollTop(). Вы также можете оживить это, чтобы оно выглядело менее поспешным. Следующий (непроверенный) код должен сработать:

var toggleClass = 'selec';

$('#btCatA').click(function() {
    var target = $(this),
        listElement = $('#listcatA');

    if (target.hasClass(toggleClass)) {
        target.removeClass(toggleClass);
        $(window).animate({
            scrollTop: '-='+listElement.height()+'px'
        }, 'slow', function () {
            listElement.slideUp('slow');
        });
    } else {
        target.addClass(toggleClass);
        listElement.slideDown('slow');
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...