2010-12-08 171 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