Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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 jquerytouch事件将自己绑定到所有内容上_Javascript_Jquery_Mobile_Scroll_Touch - Fatal编程技术网

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'};这在桌面上有效,但在手机上不起作用!