我有一个水平滚动的网站。我使用 mousewheel.js 通过鼠标滚轮水平滚动(或上下滚动)。我正在使用 CSS Tricks 中的片段像这样:
$("body").mousewheel(function(event, delta) {
this.scrollLeft -= (delta * 5);
event.preventDefault();
});
当我向下滚动时,浏览器将其解释为向右滚动。这效果很好。
我需要能够暂时禁用此行为。例如,我有一个用画廊覆盖网站的面板。当该面板打开时,我想像这样禁用滚动:
$("a.gal").on("click", function(){
$("#galPanel").addClass("open");
$("body").mousewheel(function(event, delta) {
event.preventDefault();
});
});
当我们退出面板时,我想重新启动鼠标滚轮插件。
知道如何实现这个目标吗?
更新:我找到了一个可行的解决方案,但不确定这是否是最好的方法:
$("#galPanel").bind("mousewheel", function() {
return false;
});
最佳答案
由于您已经使用了 .on()
,因此请使用 .on()
和 .off()
用于鼠标滚轮事件。
$("body").on('mousewheel', function(){
// ToDos
});
$("a.gal").on("click", function(){
$("#galPanel").addClass("open");
$("body").off('mousewheel', false);
});
我不知道如何让它在你的代码中工作。但这很简单,就像开关(开和关)。
关于jquery - 使用 mousewheel.js 暂时禁用滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17998932/