jQuery:当窗口鼠标滚轮事件解除绑定时,如何仍然获得可滚动的div
我有一个灯箱,我想后面的网页不滚动鼠标滚轮时,该div是开放的,只有div的内容应该保持滚动。 当div消失后,页面可以再次滚动。 但是我被卡住了 我可以将我的窗口绑定/解除绑定到鼠标滚轮,但我不知道如何在窗口不再可滚动时保持lightbox可滚动 我尝试了e.stopPropagation,但到目前为止没有成功。 我在这里也尝试了许多其他的例子,但经过一整晚的搜索,我就放弃了这一个 以下是我的代码结构:jQuery:当窗口鼠标滚轮事件解除绑定时,如何仍然获得可滚动的div,jquery,bind,mousewheel,Jquery,Bind,Mousewheel,我有一个灯箱,我想后面的网页不滚动鼠标滚轮时,该div是开放的,只有div的内容应该保持滚动。 当div消失后,页面可以再次滚动。 但是我被卡住了 我可以将我的窗口绑定/解除绑定到鼠标滚轮,但我不知道如何在窗口不再可滚动时保持lightbox可滚动 我尝试了e.stopPropagation,但到目前为止没有成功。 我在这里也尝试了许多其他的例子,但经过一整晚的搜索,我就放弃了这一个 以下是我的代码结构: When I scroll with mousewheel { if(no li
When I scroll with mousewheel
{
if(no lightbox)
{
// Then the mousewheel scroll triggers some stuff
}
else
{
// the lightbox div is open and I then need to
// just keep the background static (no mousewheel scroll)
// and still allow the mousewheel to scroll inside the lightbox div
}
}
这是我最后一次尝试:
$(window).bind('mousewheel DOMMouseScroll', function(e)
{
if(!lightbox)
{
...
}
else
{
$(window).bind('mousewheel DOMMouseScroll',function(e)
{
e.preventDefault();
e.stopPropagation();
return false;
});
$('.lightbox').bind('mousewheel DOMMouseScroll',function()
{
return true;
});
}
}
这将不起作用,因为:
1) lightbox div嵌入在窗口中。lightbox似乎获得了窗口的属性,包括鼠标滚轮滚动条
2) 我的窗框里面有一个窗框,这似乎不合理
3) 我不确定“return false”是否有用
仅供参考,我也尝试了一些有效的方法,但这意味着我模拟了一个卷轴,有一个滞后和楼梯效果。这看起来一点也不自然,我不想这样:
$(window).bind('mousewheel DOMMouseScroll', function(e)
{
if(!lightbox)
{
...
}
else
{
e.preventDefault();
e.stopPropagation();
$('.lightbox').bind('mousewheel DOMMouseScroll',function(){
var y = $('.lightbox').scrollTop();
$('.lightbox').scrollTop(y-15);
});
}
}
所以,我不知道还能尝试什么,我需要一些帮助
不过我有一个要求(如果你不介意的话):
我应该保持结构不变,并在“else”括号中添加我必须添加的内容。
原因是mousewheel事件触发了很多东西,而项目动态几乎完全围绕着这一点。因此,将其用作主要触发器是有意义的
多谢各位 嗯,同时我找到了一个解决方案,但它需要一个插件(scrolllock)。我所要做的就是启动else括号内的插件,并告诉它应用于lightbox类。我找到的唯一一个不需要更改代码结构的插件。开箱即用。但是没有一个插件会更好。好吧,同时我找到了一个解决方案,但它需要一个插件(scrolllock)。我所要做的就是启动else括号内的插件,并告诉它应用于lightbox类。我找到的唯一一个不需要更改代码结构的插件。开箱即用。但是没有一个插件会更好。