zoukankan      html  css  js  c++  java
  • 关于body添加position:fixed会返回到网页顶部的问题

    做网页免不了遇到弹窗,遮罩层这些页面,当有遮罩层的时候需要禁止底层页面滑动,本来使用event.stopPropagation();阻止事件冒泡在安卓端就是可以实现的,但是在ios上这个并不起作用。

    所以为了方便在弹出遮罩层的同时给body设置'position':'fixed';'top':'负的当前浏览器顶部距离页面顶部距离';此时,点击遮罩层的时候底层页面不动且页面位置正好;但是点击遮罩层蒙版的灰板时网页依旧会返回到页面的顶部;

    所以,可以将“当前浏览器顶部距离页面顶部距离”设置成一个全局变量,当遮罩层消失的时候让滚动条向上滚动“当前浏览器顶部距离页面顶部距离”,即可实现既定效果。

    代码如下:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            ul,li{
                list-style: none;
            }
            li{
                display: block;
                 100%;
                height: 0.8rem;
                font-size: 0.25rem;
                background: salmon;
                border-bottom: 1px solid aqua;
            }
            input{
                 1.5rem;
                height: 0.88rem;
                font-size: 0.45rem;
            }
            #men{
                display: none;
            }
            #menbg{
                position: fixed;
                 100%;
                height: 100%;
                background: black;
                opacity: 0.7;
                left: 0;
                top: 0;
                z-index: 2;
            }
            #con{
                 80%;
                height: 5rem;
                background: white;
                position: fixed;
                z-index: 3;
                top: 1rem;
                left: 10%;
            }
        </style>
        <script type="text/javascript">
        document.documentElement.style.fontSize=document.documentElement.clientWidth/7.5+'px';
    </script>
        <body>
            <ul>
                <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
                <li>6</li>
                <li>7</li>
                <li>8</li>
                <li>4d</li>
                <li>5d</li>
                <li>6d</li>
                <li>7f</li>
                <li>8f</li>
                <input type="button" name="" id="" value="dfdfaf" />
                <li>9</li>
                <li>a</li>
                <li>b</li>
                <li>c</li>
                <li>d</li>
                <li>e</li>
                <li>f</li>
                <li>g</li>
                <li>h</li>
                <li>i</li>
            </ul>
            
            <div id="men">
                <div id="menbg">
                    
                </div>
                <div id="con">
                    
                </div>
            </div>
        </body>
        <script src="js/jquery-2.1.4.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            $(function(){
                var top;
                $('input').click(function(){
                    top = $(window).scrollTop();
                    $('#men').show();
                    $('body').css({
                        'position':'fixed',
                        'width':'100%',
                        'top':-top
                    })
                });
                $('#menbg').bind('touchstart',function(){
                    $('#men').hide();
                    $('body').css({
                        'position':'static'
                    })
                    $(window).scrollTop(top)
                })
            })
        </script>
    </html>
    如果各位大神有可以解决event.stopPropagation();在安卓和iOS上兼容性问题的,期望指教;

    有其他更加便捷的实现方法的也同样希望不吝赐教。

  • 相关阅读:
    类型:NodeJs;问题:默认IE的编码为utf8;结果:IE不能自动选择UTF-8编码解决办法
    类型:Java;问题:eclipse配置maven;结果:eclipse配置maven
    类型:Oracle;问题:oracle 时间加减;结果:ORACLE 日期加减操作
    类型:Ajax;问题:ajax调用ashx参数获取不到;结果:ashx文件获取$.ajax()方法发送的数据
    类型:JQuery;问题:ajax调用ashx文件;结果:ashx文件怎么获取$.ajax()方法发送的json数据
    类型:Jquery;问题:jquery调用后台带参数方法;结果:利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法。
    问题:asp.net 点击button按钮调到页面顶部;结果:asp.net点击一个按钮,使页面跳转到本面页上的指定位置
    问题:ClientIDMode属性;结果:ASP.NET 4.0的ClientIDMode属性
    金木水火土五行查询表
    并发编程的基础
  • 原文地址:https://www.cnblogs.com/impossible1994727/p/7131348.html
Copyright © 2011-2022 走看看