【问题标题】:How to disable scrolling in smartphone and tablet browsers?如何禁用智能手机和平板电脑浏览器中的滚动?
【发布时间】:2012-04-10 23:33:38
【问题描述】:

我使用以下代码禁用桌面浏览器中的滚动,但它不适用于 iPhone 屏幕分辨率。

$("html").css("overflow", "hidden");

我还需要补充什么?

【问题讨论】:

    标签: jquery iphone scroll smartphone


    【解决方案1】:
    //target the entire page, and listen for touch events
    $('html, body').on('touchstart touchmove', function(e){ 
         //prevent native touch activity like scrolling
         e.preventDefault(); 
    });
    

    如果阻止触摸事件对您不起作用,您总是可以这样:

    html, body{
         max-width:100%;
         max-height:100%;
         overflow:hidden;
    }
    

    【讨论】:

    • 谢谢,您的 jQuery 代码非常适合我的工作。
    • 您必须删除 touchstart,因为使用它您还禁用了“点击触摸”事件
    • @MarcoMantovani 这不是必需的。
    【解决方案2】:

    我将提供一个不使用 jQuery 的片段,以便下一个“Javascripter”可以复制'n'paste:

    var defaultPrevent=function(e){e.preventDefault();}
    document.body.parentElement.addEventListener("touchstart", defaultPrevent);
    document.body.parentElement.addEventListener("touchmove" , defaultPrevent);
    document.body.addEventListener("touchstart", defaultPrevent);
    document.body.addEventListener("touchmove" , defaultPrevent);
    

    【讨论】:

    • 刚刚在 Android 上测试过。 defaultPreventDefault() 似乎不存在,但 preventDefault() 确实有效。
    • 复制意大利面就这么多。这是一个错字。现在更正了,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-08-07
    • 2013-02-03
    • 2014-03-27
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 2013-04-14
    • 2023-03-23
    相关资源
    最近更新 更多