Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 CSS解决方案仅使用鼠标滚轮滚动当前div,而不是其后面的div。_Javascript_Jquery_Css - Fatal编程技术网

Javascript CSS解决方案仅使用鼠标滚轮滚动当前div,而不是其后面的div。

Javascript CSS解决方案仅使用鼠标滚轮滚动当前div,而不是其后面的div。,javascript,jquery,css,Javascript,Jquery,Css,考虑以下几点: 考虑这样一个场景:我将鼠标放置在divA中,并使用鼠标滚轮滚动到divA的底部或顶部。当我到达div A的底部并用滚轮继续滚动时,它将开始滚动div B。我希望鼠标滚轮只滚动光标所在的当前div 这在任何标准CSS中都是可能的吗?或者我需要连接JS/jQuery事件来检测我当前所在的div并停止滚动事件吗?我希望有一个CSS解决方案 提前感谢您的帮助 看起来这正是您需要的: 基本上,在鼠标悬停时,您可以通过将overflow设置为hidden来禁用页面其余部分的滚动。然后在鼠

考虑以下几点:

考虑这样一个场景:我将鼠标放置在divA中,并使用鼠标滚轮滚动到divA的底部或顶部。当我到达div A的底部并用滚轮继续滚动时,它将开始滚动div B。我希望鼠标滚轮只滚动光标所在的当前div

这在任何标准CSS中都是可能的吗?或者我需要连接JS/jQuery事件来检测我当前所在的div并停止滚动事件吗?我希望有一个CSS解决方案


提前感谢您的帮助

看起来这正是您需要的:

基本上,在鼠标悬停时,您可以通过将overflow设置为hidden来禁用页面其余部分的滚动。然后在鼠标上松开它


编辑:确保处理mouseout、alt+tab和mousemove的情况。您可能需要调整它,以确保它们不会被鼠标弹出框时的滚动锁定。

这似乎不可能。如果有人发帖,我很乐意接受另一个答案

您需要此无CSS解决方案:

<script>
$("#div-A").bind("mousewheel", function(e){
var intElemScrollHeight = document.getElementById("div-A").scrollHeight;
var intElemClientHeight = document.getElementById("div-A").clientHeight;
if( intElemScrollHeight - $("#div-A").scrollTop() === intElemClientHeight) {
    $(document).bind("mousewheel", function(event) {
        event.preventDefault();
    });
}
if(e.originalEvent.wheelDelta /120 > 0 ) {
    if($("#div-A").scrollTop() != 0) {
        $(document).unbind("mousewheel"); 
    } else {
        event.preventDefault();
    }
}});
$("#div-A").on("mouseleave", function(event) {
   $(document).unbind("mousewheel");
});
</script>  

$(“#div-A”).bind(“鼠标滚轮”,函数(e){
var intElemScrollHeight=document.getElementById(“div-A”).scrollHeight;
var intElemClientHeight=document.getElementById(“div-A”).clientHeight;
if(intElemScrollHeight-$(“#div-A”).scrollTop()==intElemClientHeight){
$(文档).bind(“鼠标滚轮”,函数(事件){
event.preventDefault();
});
}
如果(例如原始事件车轮增量/120>0){
如果($(“#div-A”).scrollTop()!=0{
$(文档)。解除绑定(“鼠标滚轮”);
}否则{
event.preventDefault();
}
}});
$(“#div-A”)。关于(“鼠标移动”,函数(事件){
$(文档)。解除绑定(“鼠标滚轮”);
});

IIRC,大多数浏览器默认情况下都会这样做。哎呀,这就是我早上第一件事要读的东西,抱歉。尽管考虑到这一点,任何使用表达式的CSS解决方案都会避免性能问题。