• 手机端阻止页面滑动


    之前开发了一个手机端页面,里面有个提交表单,操作表单时会有对应的遮罩层提示,而这个遮罩层正是常见的那种盖着全屏黑色半透明的。

    问题出现于,当页面高度过长出现滚动条时,这时如果操作表单出现遮罩层,手指在点击屏幕难免会有些滑动动作,这时候页面会或上或下的滚动,这时属于正常现象。

    但是页面就偏移了当前的位置,有点不利于用户体验,如果遮罩关闭时页面跑上跑下了,再回到表单位置时,还要在重新滑动页面到达所要的位置,很不利于用户体验。

    js有很多种事件可以阻止滚动条的滚动,本篇文章为了实现起来更简单就发现了CSS的实现方式。

    touch-action:none; 和 touch-action:auto;

    这个css属性值有好几个可以自行找度娘。

    有个不是问题的问题,如果在电脑切换手机模式浏览,鼠标点击页面滑动是可以达到预定的效果,但是用鼠标的滚轮,页面该滚动还是会滚动。哈哈~~

    不过手机端没有这玩意儿,就不考虑了,你说呢?

    方法敲简单,演示地址:https://xibushijie.github.io/static/touch.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>手机端阻止页面滑动</title>
        <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
        <script src="../js/jquery-3.3.1.min.js"></script>    
        <style>
            .tk {    
                display: none;
                position: fixed;
                top:0;
                left: 0;
                bottom: 0;
                right: 0;
                background-color: rgba(0,0,0,.5);
                text-align: center;
            }
            .touch {
                touch-action:none;
            }
            .touch2 {
                touch-action:auto;
            }
            .close {
                color: #fff;
                margin-top: 3rem;
            }
        </style>
        
    </head>
    <body style="height: 2000px">
        <input type="button" value="点击">
        <div class="tk">
            <div class="close">X</div>
        </div>
        <script>
            $("input").click(function() {
                $(".tk").show();
                $("body").addClass('touch');
            });
    
            $(".close").click(function(event) {
                $(".tk").hide();
                $("body").removeClass('touch');
            });
        </script>
    </body>
    </html>
  • 相关阅读:
    深入浅出RxJava
    android 图像处理系列合集
    WebView·开发指南
    LocalBroadcastManager 的实现原理,Handler还是 Binder?
    TCP协议中的三次握手和四次挥手(图解)
    Android进程保活
    Android只能动态注册的广播Action
    WakeLock, AlarmManager, JobScheduler
    jQuery验证控件jquery.validate.js使用说明+中文API
    IntelliJ IDEA的自动提示貌似是区分大小写的,首字母小写的话,怎么都提示不出来。
  • 原文地址:https://www.cnblogs.com/wangjae/p/9186015.html
Copyright © 2020-2023  润新知