2012-05-17 58 views
1

我是js中的真正noob,所以問題如下所示。如何在加載ajax內容時使浮動邊欄繼續浮動

我有浮動邊欄,當它到達頁腳時停止浮動。 js代碼如下:

$(window).load(function(){ 
    $(function() { 
     var top = $('#sidebar').offset().top - parseFloat($('#sidebar').css('marginTop').replace(/auto/, 0)); 
     var footTop = $('#footer').offset().top - parseFloat($('#footer').css('marginTop').replace(/auto/, 0)); 

     var maxY = footTop - $('#sidebar').outerHeight(); 

     $(window).scroll(function(evt) { 
      var y = $(this).scrollTop(); 
      if (y > top) { 
       if (y < maxY) { 
        $('#sidebar').addClass('fixed').removeAttr('style'); 
       } else { 
        $('#sidebar').removeClass('fixed').css({ 
         position: 'absolute', 
         top: (maxY - top) + 'px' 
        }); 
       } 
      } else { 
       $('#sidebar').removeClass('fixed'); 
      } 
     }); 

這工作相當不錯,直到我實現了ajax分頁和內容加載。 僅當我查看第1頁時,側欄纔會滾動,當第2頁通過ajax加載時,側欄不會滾動。你可以看到它here

你有什麼想法,我需要改變代碼,使其工作,因爲我想?

+0

AJAX調用成功 – sree

+0

後再次滾動功能如何做到這一點?我不知道js –

回答

1

問題只是你初始化maxYfootTop只有一次。當您擴展文檔時,他們需要更改。每次滾動發生時您都可能重新計算它們。

+0

你能否詳細解釋我該怎麼做? –