javascript - 如何在不检查设备的情况下禁用移动浏览器上的滚动?

标签 javascript jquery jquery-mobile

有趣的问题:

如何在移动设备上禁用滚动,但在代码中无需检查移动浏览器等。

我正在编写网站的移动版本。在网络浏览器中我的功能运行良好!

当我调用 Scroll("off); 时,它会停止。但是在移动设备(ios)上我仍然可以触摸移动内容。

有人可以帮忙修改这个案例的功能吗?结果必须是:网络上没有滚动,移动设备上没有触摸移动。

这是我所拥有的:

function Scroll(str)
    {
      var scrollPosition = [
        self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
        self.pageYOffset || document.documentElement.scrollTop  || document.body.scrollTop
      ];

      if(str=="off")
      {
        var html = jQuery("html");
        html.data("scroll-position", scrollPosition);
        html.data("previous-overflow", html.css("overflow"));
        html.css("overflow", "hidden");
        window.scrollTo(scrollPosition[0], scrollPosition[1]);
      }
      else
      {
        var html = jQuery("html");
        var scrollPosition = html.data("scroll-position");
        html.css("overflow", html.data("previous-overflow"));
        window.scrollTo(scrollPosition[0], scrollPosition[1]);
      }
    }

最佳答案

解决方案是:

$('body').bind('touchmove', function(e){e.preventDefault()}); 
$("body").unbind("touchmove");  

关于javascript - 如何在不检查设备的情况下禁用移动浏览器上的滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36744599/

相关文章:

javascript - HTML5 地理位置地址表单填充程序未捕获语法错误 : Unexpected token <

javascript - 具有突变图 Cool/graphql 的重复项目

javascript - 防止 PHP/JavaScript/JQuery 中的表单操作 (PayPal)

javascript - 我试图让这个脚本函数处理图像加载

javascript - 在哪个线程上处理和执行异步请求(如 AJAX 请求)

javascript - 无法专注于 Bootstrap Carousel 中的输入字段

jQuery 移动 : Pull to refresh list view

javascript - 提交不应转移到下一页

ios - 文档 pageinit 在 iOS (jQueryMobile) 上触发不止一次

javascript - 在浏览器中检测手机的最简单方法