Firefox ubuntu上的jquery幻灯片闪烁/闪烁问题

时间:2010-12-08 14:08:11

标签: jquery firefox ubuntu slide

我有一个<ul>列表有点长。当您展开(向下滑动)列表元素时,浏览器不会向下滚动,一切都没问题。当您收缩(向上滑动)该元素列表时,浏览器向上滚动将闪烁/闪烁A 批次,同时这样做。

  • 这不会发生在MAC Firefox上。
  • 在Windows上(至少我可以测试的版本)
  • 这在Firefox Linux(ubuntu)上严重发生。

以前有人有这个问题吗?如果是这样,我们可以做些什么来解决它?

以下是一个代码示例,以便更好地理解:

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

1 个答案:

答案 0 :(得分:1)

您可以通过将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');
    }
});
相关问题