javascript - 防止滚动事件

标签 javascript jquery scroll

有什么方法可以防止在设置 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/

相关文章:

ios - UIViewAnimationTransitionFlipFromRight - 替代显示一张张卡片?

algorithm - UI 虚拟化实现细节。如何实现?

jquery - 当 fancybox 已打开时更新内容

javascript - 旋转功能不更新位置

jQuery 在屏幕上滚动动画 div 并返回

javascript - Highcharts - 如何在悬停时将工具提示放在每个饼图切片的图标后面?

javascript - 根据单选按钮值显示或隐藏表格行

javascript - 如何让客户端使用 Javalin 接收服务器发送的事件?

javascript - 如何隐藏 <div> 并仅在 &lt;textarea&gt; 具有焦点时显示它?

javascript - JS 计算器无法在 WordPress 中运行,脚本可以在旧站点上运行