私が達成しようとしていること:
- 画像の上部が (スクロールによって) ウィンドウの上部に到達すると、要素にクラス "sticky" が追加されます。
- スティッキーになった画像がコンテナの一番下に到達すると、クラスが削除され、要素は最後の一番下の位置に留まります
- ユーザーが上に戻ると、同じプロセスが発生しますが、下から上に移動するだけです。
フィドル。
関連する jQuery :
$(".entry-thumbnail").each(function () {
var $this = $(this),
p = $this.parent(),
scrollT = $this.scrollTop(),
scrollW = $(window).scrollTop(),
scrollPT = p.scrollTop() + p.outerHeight();
if (!$this.hasClass("sticky")) {
console.log("Tada!");
$(window).scroll(function () {
if (scrollT <= scrollW) {
$this.addClass("sticky");
}
});
}
else {
$(window).scroll(function () {
if (scrollT + $this.outerHeight() >= scrollPT) {
$this.removeClass("sticky");
}
});
}
});
私が遭遇する問題:
- クラスはすべての要素に追加されます
- クラス追加時に要素の位置(左右)が変わる
- クラスは削除されません