【问题标题】:disable horizontal scroll for mobile [duplicate]禁用移动设备的水平滚动[重复]
【发布时间】:2015-04-30 10:29:37
【问题描述】:

我希望禁用移动设备的垂直滚动。使用:

body {overflow-x:hidden}

适用于普通浏览器,但在移动设备上,如果元素比屏幕宽,它将允许横向滚动。

我尝试过使用此代码:

jQuery(document).ready(function($) {
    var $body = $(document);
    $body.bind('scroll', function() {
        // "Disable" the horizontal scroll.
        if ($body.scrollLeft() !== 0) {
            $body.scrollLeft(0);
        }
    });
});

但它允许侧面滚动(在移动设备上)但将滚动“跳”回右侧,这不是一个完美的解决方案。

我试过用这个:

    <meta name="viewport" content=" width=device-width; initial-scale=1.0; user-scalable=0;" /> 
 $(document).bind("touchmove",function(event){
            event.preventDefault();
      });

这很完美,完全禁用了移动滚动,问题是它同时禁用了水平和垂直滚动(我希望只禁用水平滚动)。

【问题讨论】:

标签: jquery html css


【解决方案1】:

试试这个:

html, body {
  overflow-x: hidden;
}
body {
  position: relative
}

【讨论】:

  • 在某些情况下这对我更有效:html, body { max-width: 100% !important;溢出-x:隐藏!重要; }
  • 没错。令人惊讶的是,仅将溢出设置为 body 不起作用。只有 html + body
猜你喜欢
  • 1970-01-01
  • 2014-07-30
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多