有什么方法可以防止在设置 scrollTop
属性时触发 onscroll
事件吗?
var a = $(".elem");
a.scrollTop(100); // will fire onScroll
谢谢。
最佳答案
This code有点黑客,但它完成了工作:
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 在单个线程上运行,这意味着它们不会同时运行。因此,注释掉的锁定功能是无用的。如果您只是想同步滚动,上面的代码应该可以正常工作,但老实说我不太确定如何从那里继续。
关于javascript - 防止滚动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12101021/