我试图弄清楚这个网站是如何创建他们的粘性侧边栏的。有很多关于如何创建位置固定侧边栏的 jQuery 教程,但没有一个专门解决长边栏的问题。
到目前为止我能想到的最好的代码是这样的:
$(function () {
var lst = 0;
var height = $('.sidebar').height();
var offset = $(".sidebar").offset();
$(window).scroll(function () {
if ($(window).scrollTop() > lst) { //downscroll
if ($(window).scrollTop() > offset.top) {
$(".sidebar").stop().animate({
marginTop: $(window).scrollTop() - 100
});
} else {
$(".sidebar").stop().animate({
marginTop: 0
});
}
} else { //upscroll
if ($(window).scrollTop() < offset.top) {
$(".sidebar").stop().animate({
marginTop: 0
});
}
}
lst = $(window).scrollTop();
});
});
Jsfiddle在这里。如果有人能帮助我指出正确的方向,将不胜感激。谢谢!