正在阻止滚动事件

Preventing scroll event

本文关键字:滚动 事件      更新时间:2023-09-26

在设置scrollTop属性时,是否有任何方法可以防止触发onscroll事件?

var a = $(".elem");
a.scrollTop(100); // will fire onScroll

谢谢。

这段代码有点黑客,但它完成了任务:

var p1 = $('.one'), p2 = $('.two');
//var lock;
$('p').scroll(function() {
    //if (lock) return;
    //lock = true;
    var scrollTop = $(this).scrollTop();
    var other = $(this).hasClass('one') ? p2 : p1;
    other.scrollTop(300 - scrollTop);
    console.log('To:', 300 - scrollTop);
    //lock = false;
});​

我们似乎都做出了一个基本假设,即事件将同时运行,但仔细观察,我们意识到Javascript在单个线程上运行,这意味着它们不会同时运行。因此,注释掉的锁定功能是无用的。如果你只是想同步滚动,上面的代码应该可以正常工作,但老实说,我不太确定如何从那里开始。