如何在移动设备上创建模式导航菜单并防止正文滚动
How to create a modal navigation menu on mobile and prevent body scrolling?
我寻找并测试了许多解决方案,但我还不能让它工作。我希望子导航菜单(模态)能够在显示时滚动,但不能滚动正文。
我试过了:
1:Javascript在模式打开时将CSS属性更改为"固定":
var main = document.getElementById('main');
main.setAttribute("style", "position: fixed;");
问题:如果您在打开模态时滚动页面,页面会上升(因为"固定"也意味着您无法拥有滚动条)
2:Javascript在模式打开时将CSS属性更改为"溢出隐藏":
document.body.setAttribute("style", "overflow: hidden;");
问题:在移动设备上不起作用,仍然滚动(我使用安卓)。
3:Javascript禁用触摸事件:
var main = document.getElementById('main');
main.addEventListener('touchstart', function(e){ e.preventDefault(); });
main.addEventListener('scroll', function(e){ e.preventDefault();});
main.addEventListener('touchmove', function(e){ e.preventDefault();});
问题 :除非您从子导航菜单中开始触摸,否则有效。
看到这个以更好地理解我的意思:http://i45.tinypic.com/ajl3rt.png
那么,如何防止显示叠加菜单时在移动设备中滚动正文?
我也有类似的问题。通常 溢出:隐藏 在桌面上完成此操作。对于移动设备,您还需要应用固定位置。因此,当您的对话框处于活动状态时,将".noscroll"类添加到正文中:
body.noscroll{
overflow:hidden;
position:fixed;
}
相关文章:
- 如何在angularjs中进行简单的菜单导航
- jQuery circle菜单导航在切换关闭后创建小圆圈
- 垂直菜单/导航 - WordPress/JSFiddle.
- 垂直菜单/导航自动滚动
- jQuery增加了菜单导航的延迟,可用性
- Ionic:带有选项卡和侧菜单导航问题的主详细信息
- Jquery:选项卡式菜单导航,根据所选菜单激活和停用
- 防止在菜单/导航系统的特定屏幕宽度下触发 jQuery 函数
- 菜单导航不适用于 jquery 日期选择器
- 引导侧菜单导航问题
- 从左侧的推送菜单导航中滑出
- 从引导导航栏下拉菜单导航到角度页面模板
- CSS-需要帮助弄清楚我的下拉菜单导航哪里出了问题
- 子菜单导航切换错误
- 我的Bootstrap模式锚不是从一个菜单(导航栏)的行项目内工作
- Jquery手风琴菜单-导航到新页面时保持打开状态
- 双引导菜单's导航条固定顶部
- 如何从浏览器中的菜单导航到不同的页面
- 如何在滚动后自动更改活动菜单(菜单导航)?
- 突出显示重复的