2010-12-08 138 views
0

我有一个<ul>列表有点长。当你展开(向下滑动)列表元素时,浏览器不会向下滚动,一切都可以。当您合同(向上滑动)该元素列表时,浏览器向上滚动将闪烁/眨眼A lot这样做。Firefox上的jQuery幻灯片闪烁/闪烁问题ubuntu

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

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

这里有一个更好的了解一个代码示例:

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

回答

1

你也许可以防止这种由你向上滑动列表元素之前该元素的高度降低window对象的scrollTop财产。 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'); 
    } 
}); 
+0

对不起这个,我刚刚更新了我的question-能否请您看看,而且,如果它仍然适用,点到哪,说.scroolTop应放在哪里?这个元素是动态地(php)构建的,所以没有固定的高度。 – MEM 2010-12-08 14:23:49