このウェブサイトがどのようにしてスティッキー サイドバーを作成したかを理解しようとしています。位置が固定されたサイドバーを作成する方法に関する 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 。誰かが私を正しい方向に向けるのを手伝ってくれれば幸いです。ありがとう!