Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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_Jquery_Css_Html - Fatal编程技术网

Javascript 防止在特定div下滚动

Javascript 防止在特定div下滚动,javascript,jquery,css,html,Javascript,Jquery,Css,Html,这是我的部门结构 <div id="page_wrapper"> <div id="inner1"></div> <div id="inner2"></div> <div id="inner3"></div> <div id="inner4"></div> </div> 单击按钮时,如何防止在$('#inner3')下方滚动 我试过几种方法。 我使

这是我的部门结构

<div id="page_wrapper">
   <div id="inner1"></div>
   <div id="inner2"></div>
   <div id="inner3"></div>
   <div id="inner4"></div>
</div>

单击按钮时,如何防止在
$('#inner3')
下方滚动

我试过几种方法。 我使用了
style=“display:none;
。这可以防止滚动,但我需要它始终可见。我只想防止用户看到它

我使用了
style=“可视性:隐藏。当我这样做时,页面底部区域是空白的。看起来很奇怪


那么有没有什么方法可以隐藏
$(“#inner4”)

你可以在inner4上做绝对位置,然后它就不在那里了,但仍然在dom中

#inner4 {
   position: absolute;
   left: -9999999px;
}

我认为应该有更好的选择。但这个jQuery函数正是您想要的:

$(function() {
    $(window).scroll(function() {
        var winTop = $(document).scrollTop();
        var elem = $('#inner3');
        var breakPoint = elem.offset().top - ( $(window).height() - elem.height() );
        if( winTop>breakPoint ) {
            $(window).scrollTop( breakPoint );
        }
    });
});
请再试一次

#inner4 {
overflow: hidden;
height: 0px;
padding: 0px;
min-height: 0px;
max-height: 0px;
}

任何JSFIDLE或demo?请分享您尝试过的内容。因此,如果您不希望人们滚动通过
\inner3
为什么使用
display:none
无法看到
\inner4
会有什么关系呢?你的问题令人困惑。您声明div应该是可见的,而不是隐藏的,但人们不应该看到它。@BenM:我已经尝试使用css(如我在帖子中提到的)来实现这一点。@Rorymcrossan:谢谢<代码>$(“#inner4”)
包含一些canvas+png,我需要与html2canvas一起使用。因此,使用
display:none
可以防止html2canvas绘制画布/png。它与display:none有什么不同?使用display:none有时某些东西会变得不活动。所以我猜这就是OP遇到的,所以不想显示:none@FabrizioCalderan:你说得对。这不是一个好的解决方案,虽然我认为这是。。。抱歉。有什么不好的地方,解释一下,让我们看看你为什么不想显示