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:你说得对。这不是一个好的解决方案,虽然我认为这是。。。抱歉。有什么不好的地方,解释一下,让我们看看你为什么不想显示