javascript - 在移动网页上禁用水平滚动

标签 javascript jquery html css

我有一个我正在尝试构建的简单移动网页,它带有一个类似 Facebook 的侧边菜单按钮。我正在尝试使用 CSS overflow-x:hidden 禁用水平滚动,但它不起作用。这是我的代码,我们将不胜感激:

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>



    <script> 
        $(document).ready(function(){                       
          $("button").click(function(){ 

              var win = $("#right-side");
              var position = win.position();
              //alert( "left: " + position.left + ", top: " + position.top ); 

              if(position.left < 100)
              {
                  $("#right-side").animate({left:'250px'});
              }else{
                  $("#right-side").animate({left:'0px'});
              }

          });
        });
    </script> 

    <style>
        body{overflow-x: hidden;font-family: sans-serif;}

        #right-side{
            background:#BFC7D8;;
            left:0;
            top:0;
            height:100%;
            width:100%;
            position:absolute;

        }
        #left-menu
        {
            background:#323949;
            left:0;
            top:0;
            height:100%;
            width:250px;
            position:absolute;
        }

        #navigation { font-size:20px; width:250px; padding-top:100px; }
        #navigation ul { margin:0px; padding:0px; }
        #navigation li { list-style: none; }



        ul.top-level li > a {
          display: block;
          border-bottom: 1px solid rgba(0,0,0, 0.1);
          border-top: 1px solid rgba(255, 255, 255, 0.1);
          padding: 15px;
          text-shadow: 0 1px 0 #000;
          text-decoration: none;
          color: #ccc;
          text-indent: 20px;
        }

        #toolbar
        {
            width:100%;
            height:50px;
            background:#00F;    
        }


    </style>





<div id="left-menu">
    <div id="navigation">
    <ul class="top-level">
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
        <li><a href="#">FAQ</a></li>
        <li><a href="#">News</a></li>
    </ul>
</div>  
</div>




<div id="right-side">

    <div id="toolbar">
        <button>Menu</button>
    </div>

    <h1>This is a test</h1>
</div>

最佳答案

我已将您的代码放入 fiddle 中,但我无法将“缩放”元标记添加到头部,因此很难在我的手机上进行测试。 http://jsfiddle.net/Pevara/Ku5nY/1/show/

虽然在桌面上似乎工作正常,但没有滚动条。

我确实在您的 CSS 中添加了以下内容:

body{
  overflow-x:hidden;
  font-family: sans-serif;   
  /* added: */
  max-width: 100%; 
  height: 100%;
}

不确定它是否会有所作为,但值得一试......

关于javascript - 在移动网页上禁用水平滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17224136/

相关文章:

javascript - 如何在 JQuery 中将重复的 [onClick] 语句写入单行?

php - 为什么我不能在 TCPDF 表中使用 č、ć、đ 章程?

javascript - 我无法理解为什么单击我的代码会选择文本

javascript - 什么是 HTML5 Canvas ?

javascript - Handlebars - 如何访问 "each"范围内的模板数据?

jquery - Bootstrap 下拉菜单在 xs View 中无法正确折叠(低于 768 像素)

jquery - 多个元素的一键处理程序?

javascript - 选择由 Firebase 动态创建的元素

javascript - JavaScript 中的 "read/write variable"是什么意思?

javascript - 移动设备上性能更好的 JSON 替代方案