我需要一個側邊欄,當用戶在頁面上滾動時,該邊欄會與固定位置保持一致。我遇到了很多解決方案,都非常笨重,複雜或太長。我需要它簡單而高效。我想它並使它:包含的粘性邊欄
var length = $('#container').height() - $('#stick').offset().top - parseFloat($('#stick').css('marginTop').replace(/auto/, 0));
$(window).scroll(function() {
var scroll = $(this).scrollTop();
if (scroll < $('#container').offset().top) {
$('#stick').removeAttr("style");
}
else if (scroll > length) {
$('#stick').css('position', 'absolute');
}
else {
$('#stick').css({"position":"fixed", "top":"0", "right":"0"});
}
});
我的Remy Sharp screencast的幫助和waypointarts blog post
當#container的獲得在視口的末端#stick停止滾動做這個(「固定」的位置被移除),問題是它消失了,並沒有保持在該位置的絕對位置,這種行爲會干擾用戶。
如何讓#stick側欄完全定位在#container的底部而不是消失?你是否也認爲我的代碼可以完善?
我是業餘的,並開始使用jquery1個月現在,所以你會發現很多在這裏的錯誤...
謝謝。
當足夠的瀏覽器支持它時,可以使用['position:sticky'](https://developer.mozilla.org/en-US/docs/Web/CSS/position#Sticky_positioning) – Oriol 2014-10-16 21:27:33
哇太棒了。我不知道這個位置可用。感謝您指出它。目前還不是一個可靠的選項:http://caniuse.com/#search=sticky – 2014-10-16 22:32:15