Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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
Javascript 悬停固定元素时无法滚动可滚动div_Javascript_Css_Mobile_Scroll - Fatal编程技术网

Javascript 悬停固定元素时无法滚动可滚动div

Javascript 悬停固定元素时无法滚动可滚动div,javascript,css,mobile,scroll,Javascript,Css,Mobile,Scroll,我们都知道移动浏览器上的100vh跳转 为了防止这种情况发生,我将页面的可滚动内容包装在一个单独的div中,效果非常好 但我仍然需要一些固定元素。 当您现在悬停固定元素并尝试滚动时,scroller div不会像body在正常滚动时那样滚动 这显然很糟糕,不能再这样下去了 固定元素是.scroll包装器的兄弟元素、前辈元素还是祖先元素似乎并不重要。就我的理解而言,每当您悬停固定元素并滚动时,浏览器希望滚动固定元素内容和滚动包装器 到目前为止,我的想法是: 或者找到一个新的解决方案,防止地址栏在滚

我们都知道移动浏览器上的100vh跳转

为了防止这种情况发生,我将页面的可滚动内容包装在一个单独的div中,效果非常好

但我仍然需要一些固定元素。 当您现在悬停固定元素并尝试滚动时,scroller div不会像body在正常滚动时那样滚动

这显然很糟糕,不能再这样下去了

固定元素是.scroll包装器的兄弟元素、前辈元素还是祖先元素似乎并不重要。就我的理解而言,每当您悬停固定元素并滚动时,浏览器希望滚动固定元素内容和滚动包装器

到目前为止,我的想法是:

或者找到一个新的解决方案,防止地址栏在滚动条上滑动。 或者以某种方式滚动,使浏览器忽略滚动固定元素的尝试,而是滚动其下方的元素,同时保持固定元素可悬停和单击。 或者通过某种方式将鼠标滚轮、鼠标滚轮等传递给滚动包装器 二号干线。这条路不太有前途,我就是找不到任何东西可以走1号线。正在发生,所以。。关于如何完成这3项任务有什么想法吗。选择权


下面是一个例子来说明这个问题

奇怪。。就在文本和代码笔完成时,我找到了一个解决方案作为建议——

解决方案3。这是可能的

关键是从固定元素的wheel事件中获取e.deltaY,并将其添加到.scroll包装器中。如果要使用jQuery执行此操作,则deltaY隐藏在e.originalEvent中


这回答了你的问题吗?
$(".fixed-element").on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function(e) {
    e.preventDefault();
    $(".scroll-wrapper")[0].scrollTop += e.originalEvent.deltaY;
})