2013-04-16 74 views
2

我一直試圖使用jQuery向用戶滾動時添加一個類到div,然後當他們滾動回div的原始位置時再次刪除。它被用於論壇,以便當用戶滾動瀏覽麪包屑時,他們會粘貼到頁面的頂部。這是我目前使用的代碼:元素在滾動時打開和關閉

$.noConflict(); 
jQuery(document).ready(function($){ 
    $(window).scroll(function() { 
     if ($(window).scrollTop() > $('#secondary_navigation').offset().top) 
      $('#secondary_navigation').addClass('floating'); 
     else 
      $('#secondary_navigation').removeClass('floating'); 
    }); 
}); 

它的工作...幾乎;但是當div粘貼到頁面頂部時,它會閃爍。在查看實時代碼時,課程不斷被添加和刪除,導致可怕的滾動體驗。

有沒有人知道爲什麼會發生這種情況?

+2

請提供[jsfiddle](http://jsfiddle.net)示例。 – Dom

回答

1

當div浮動時它會發生什麼? :)
我認爲一個更好的方法是將該div的初始偏移量存儲在一個變量中並使用它。例如:

$.noConflict(); 
jinogreQuery(document).ready(function($){ 
    var scrollTarget = $('#secondary_navigation').offset().top; 
    $(window).scroll(function() { 
     if ($(window).scrollTop() > scrollTarget) 
      $('#secondary_navigation').addClass('floating'); 
     else 
      $('#secondary_navigation').removeClass('floating'); 
    }); 
}); 
+0

完美地工作。謝謝! – pezza3434