在特定像素值处精确滚动位置

时间:2018-02-26 17:17:44

标签: javascript jquery

我有一个设计,我试图锁定"当视口达到窗口内的特定距离时,通过实际添加溢出:隐藏到主体的视口。我宁愿不必解决它。我的问题:有没有一种方法可以让我的卷轴足够精细,我可以将其触发到特定值?如果我滚得太快,它就会错过目标。不是最糟糕的事情,但需要慢速滚动才能进行,这有点奇怪。

const scrollTop = $(window).scrollTop();
const elementOffset = $("#my-div").offset().top;
const distance = (elementOffset - scrollTop);

if (distance === 75){
   this.toggleNoScroll();
}

1 个答案:

答案 0 :(得分:0)

  

有没有一种方法可以让我的卷轴足够精细,我可以将其触发到特定值?

不是,不。您可以快速了解UI更新滚动位置的速度以及用户滚动的速度。

另一种方法是定位滚动位置范围,如下所示:

if (distance >= 75 || distance <= 100) {
   this.toggleNoScroll();
}

我还建议您使用position: fixed。如果您有这样的理由,我会在尝试寻找替代方案之前解决这个问题。