2013-05-05 55 views
0

笏我需要的是一個側欄滾動普通頁面(相對),當側欄的最後一行pf文本(無論)進入視圖時,該sidbar應該改爲固定。因此,我不會在側邊欄區域留出空位。相對邊欄到固定,當它到達窗口的末端

我走到這一步:

$(function() { 
    var top = $('#sidebar').offset().top; 
    var sidebartop = $('#sidebar').height()/2; 

    $(window).scroll(function(evt) { 
     var y = $(this).scrollTop() - sidebartop; 
     if (y > top) { 
       $('#sidebar').addClass('fixed').css("top", -top -sidebartop + 220) 
      } 
     else { 
      $('#sidebar').removeClass('fixed'); 
      $('#sidebar').css("top", "auto"); 
     } 
    }); 
}); 

http://jsfiddle.net/VtPcm/437/

,這是actualy幹活 - 但不是動態的,所以如果我改變側邊欄的高度,我必須重新設置腳本 - 那我怎麼改變這個?

回答

0

你是說在頁面加載後#sidebar的高度可能會改變嗎?如果是這樣,包括頂部和sidebartop變量聲明裏面的$(窗口)的.scroll功能應該做的伎倆:

$(function() {  
    $(window).scroll(function(evt) { 
     var top = $('#sidebar').offset().top; 
     var sidebartop = $('#sidebar').height()/2; 
     var y = $(this).scrollTop() - sidebartop; 
     if (y > top) { 
       $('#sidebar').addClass('fixed').css("top", -top -sidebartop + 220) 
      } 
     else { 
      $('#sidebar').removeClass('fixed'); 
      $('#sidebar').css("top", "auto"); 
     } 
    }); 
}); 

或者你可以衡量作爲你的頁面的加載頂部和sidebartop變量目前正在做這些工作,而且在任何時候更改側邊欄的內容高度後更新這些變量。

+0

不,它不會在頁面加載後更改 - 但是當我添加一個鏈接或任何時候,我不想再次更改腳本。和我postet的代碼 - 不起作用.. – 2013-05-05 12:34:24

相關問題