我有一个水平滚动的网站。我使用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;
});
答案 0 :(得分:1)
可能会有所帮助:您可以使用.on()
$('#galPanel').on('mousewheel', function(event, delta){
event.preventDefault(); // Or return false
});
答案 1 :(得分:1)
如您已使用.on()
,请使用 .on()
和 .off()
进行鼠标滚轮事件。
$("body").on('mousewheel', function(){
// ToDos
});
$("a.gal").on("click", function(){
$("#galPanel").addClass("open");
$("body").off('mousewheel', false);
});
我不确定如何让它在您的代码中运行。但这很简单,比如开关( ON和OFF )。