Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery:当窗口鼠标滚轮事件解除绑定时,如何仍然获得可滚动的div_Jquery_Bind_Mousewheel - Fatal编程技术网

jQuery:当窗口鼠标滚轮事件解除绑定时,如何仍然获得可滚动的div

jQuery:当窗口鼠标滚轮事件解除绑定时,如何仍然获得可滚动的div,jquery,bind,mousewheel,Jquery,Bind,Mousewheel,我有一个灯箱,我想后面的网页不滚动鼠标滚轮时,该div是开放的,只有div的内容应该保持滚动。 当div消失后,页面可以再次滚动。 但是我被卡住了 我可以将我的窗口绑定/解除绑定到鼠标滚轮,但我不知道如何在窗口不再可滚动时保持lightbox可滚动 我尝试了e.stopPropagation,但到目前为止没有成功。 我在这里也尝试了许多其他的例子,但经过一整晚的搜索,我就放弃了这一个 以下是我的代码结构: When I scroll with mousewheel { if(no li

我有一个灯箱,我想后面的网页不滚动鼠标滚轮时,该div是开放的,只有div的内容应该保持滚动。 当div消失后,页面可以再次滚动。 但是我被卡住了

我可以将我的窗口绑定/解除绑定到鼠标滚轮,但我不知道如何在窗口不再可滚动时保持lightbox可滚动

我尝试了e.stopPropagation,但到目前为止没有成功。 我在这里也尝试了许多其他的例子,但经过一整晚的搜索,我就放弃了这一个

以下是我的代码结构:

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类。我找到的唯一一个不需要更改代码结构的插件。开箱即用。但是没有一个插件会更好。