Javascript jquerytouch事件将自己绑定到所有内容上
我正在使用一个需要防止滚动的插件 在桌面上,这非常简单:Javascript jquerytouch事件将自己绑定到所有内容上,javascript,jquery,mobile,scroll,touch,Javascript,Jquery,Mobile,Scroll,Touch,我正在使用一个需要防止滚动的插件 在桌面上,这非常简单: $( document ).css({ overflow: 'hidden' }); 但是在移动设备上,它不会工作,因为它只会隐藏滚动条,并且不会阻止滚动,所以这很难 我需要的文件不滚动,即使是在手机上,但我需要的东西在一个DIV将滚动 演示: 在桌面上,它可以正常工作,但在移动设备上,它将防止在文档中的任何地方滚动 我试着这样做: <style> .box { position: fixed; to
$( document ).css({
overflow: 'hidden'
});
但是在移动设备上,它不会工作,因为它只会隐藏滚动条,并且不会阻止滚动,所以这很难
我需要的文件不滚动,即使是在手机上,但我需要的东西在一个DIV将滚动
演示:
在桌面上,它可以正常工作,但在移动设备上,它将防止在文档中的任何地方滚动
我试着这样做:
<style>
.box {
position: fixed;
top: 3em;
right: 3em;
left: 3em;
bottom: 3em;
border: 3px solid green;
background-color: red;
color: white;
overflow: hidden;
}
.text {
position: absolute;
bottom: 0;
right: 0;
left; 0;
height: 150px;
width: 100%;
overflow: auto;
}
</style>
<body>
<div class="box">
<div class="text">A VERY LONG TEXT</div>
</div>
<script>
var touch = function( event ) {
event.preventDefault();
event.stopPropagation();
},
$this = $( '.box' ),
textBox = $this.children( ':first-child' );
$( document ).not( textBox ).bind( 'touchmove', touch )
$( 'body' ).css( 'overflow', 'hidden' );
</script>
</body>
我该怎么办?您可以通过设置position:fixed将它锁定在适当的位置,并通过JS计算它的滚动距离来设置顶部。这样,它就不动了。确保.box的位置为:relative so.text的位置是相对于.box的。var scrollTop=$document.scrollTop;$'css{position:'fixed',top:scrollTop,left:0,right:0,'overflow-y':'hidden'};这在桌面上有效,但在手机上不起作用!