我已经和这件事打了几个星期了。我无法弄清楚。
我打算在菜单打开时阻止身体水平滚动。这是一个完整的jsbin:
http://jsbin.com/vopeq/38/edit
似乎任何解决方案只会撤消其他按照我希望的方式工作的东西。所以我将需求添加到jsbin中以跟踪每个版本对哪些内容感到满意。
也许它太好了不可能,但我认为我满足所有要求,但我仍然需要检查Android设备:
我学到的东西,这让我耽误了这么长时间而且我没有意识到,overflow: hidden
元素在移动Safari中的<body>
并没有。蹲下!我不得不移动我的样式以防止向下滚动一级元素。
Ed4指出了我正确的方向。我需要在overflow: hidden
而不是元素本身的元素的父元素上设置left: 85%
(我试图在<body>
上完成所有操作。)< / p>
所以我有一个body > .container
,我在overflow: hidden
和body > .container > .content
上使用position: relative
和left: 85%
进行推送。
答案 0 :(得分:1)
你的问题更多的是设计规范而不是问题,所以我没有尝试为你设计整个布局,而是指出你的jsbin无法正常工作的原因。
请勿尝试在left
上设置body
。如果body
在屏幕外突出,则您无法可靠地停止滚动。
相反,保持body
静止,宽度和高度均为100%,因此它可以作为可见的窗口边界。如果要锁定滚动,可以在overflow: hidden
上设置body
。处理滑动和滚动菜单,在体内有单独的div。