小编lou*_*lou的帖子

如何在移动设备上创建模态导航菜单并防止身体滚动?

我寻找并测试了许多解决方案,但我无法使其工作.我希望子导航菜单(模态)能够在显示时滚动,但不能滚动身体.

我试过了 :

1:当模态打开时,Javascript将CSS属性更改为"fixed":

var main = document.getElementById('main');
main.setAttribute("style", "position: fixed;");
Run Code Online (Sandbox Code Playgroud)

问题:如果在打开模态时滚动页面,页面会上升("固定"也意味着您无法使用滚动条)

2:当模态打开时,Javascript将CSS属性更改为"溢出隐藏":

document.body.setAttribute("style", "overflow: hidden;");
Run Code Online (Sandbox Code Playgroud)

问题:在移动设备上不起作用,仍然滚动(我使用android).

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();});
Run Code Online (Sandbox Code Playgroud)

问题:除非您从子导航菜单中开始触摸,否则工作.

看到这个是为了更好地理解我的意思:http://i45.tinypic.com/ajl3rt.png

那么,当显示叠加菜单时,如何防止身体在移动设备中滚动?

javascript mobile android scroll modal-dialog

6
推荐指数
1
解决办法
1715
查看次数

单个元素的div容器是什么意思?

我经常看到这样的事情:

<div id='side_logo'>
    <a class="logo" href="index.html">
         <img src="img/logo.png">
    </a>
</div>
Run Code Online (Sandbox Code Playgroud)

使用上述标记而不仅仅是:有什么好处:

<a id='side_logo' class="logo" href="index.html">
        <img src="img/logo.png">
</a>
Run Code Online (Sandbox Code Playgroud)

html css

0
推荐指数
1
解决办法
115
查看次数

标签 统计

android ×1

css ×1

html ×1

javascript ×1

mobile ×1

modal-dialog ×1

scroll ×1