我想要达到的目标:
- 当图像顶部到达窗口顶部时(通过滚动),将向元素添加一个“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");
}
});
}
});
我遇到的问题:
- 类被添加到所有元素
- 添加类时元素位置(左/右)发生变化
- 类不会被删除