zoukankan      html  css  js  c++  java
  • 解决IOS移动端 Safari浏览器 onclick无法触发的问题

    在移动端布局的时候, 在底部有一个button, 页面超过两屏, 是一个可滚动的的网页, 当运行在移动端Safari浏览器上的时候, 向下滑动页面, 浏览器的头部和尾部会自动隐藏, 这样可视区域就会变大, 本来这个设计是很好的, 但是这也跟前端工程师带来麻烦, 当头部和尾部隐藏掉之后, 再点击底部的按钮, 不会触发, 它会自动识别点击了底部, 先把底部和头部显示出来, 再次点击这个按钮时才会触发, 这就导致了底部按钮需要点击两次才能触发, QA肯定是不愿意的, 用户更是不愿意的, 废话不多说, 看效果你就明白了

    看的不是很清晰, 就是在下滑的时候头部和底部会自动隐藏, 点击按钮时, 先显示底部和头部导航, 再次点击的时候才会触发onclick事件

    上个代码, 布局很简单, 放到Safari浏览器上运行就明白了

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
        <title>safari</title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
            .box {
                height: 2000px;
                background-color: #eee;
            }
            #btn {
                height: 40px;
                line-height: 40px;
                font-size: 18px;
                color: #fff;
                text-align: center;
                border: none;
                outline: none;
                background-color: #f66;
                width: 100%;
                position: fixed;
                bottom: 0;
                left: 0;
                right: 0;
            }
            .count {
                height: 20px;
                line-height: 20px;
                font-size: 14px;
                background-color: #66f;
                color: #fff;
                padding: 0 10px;
                position: fixed;
                top: 10px;
                left: 10px;
            }
        </style>
    </head>
    <body>
    <div class="box"></div>
    <button id="btn">点击</button>
    <div class="count">0</div>
    </body>
    <script type="text/javascript" src="./jquery.js"></script>
    <script type="text/javascript">
        var a = 0;
        $('#btn').on('click', function() {
            a += 1;
            $('.count').html(a)
        })
    </script>
    </html>

    解决的办法就是, 滚动的时候不让底部和头部导航隐藏, 这样就不会有问题了, 但是经过一番搜索之后, 用js没有办法控制浏览器的盗汗栏不消失, 最后..终于在公司大佬的帮助下解决了, 其实非常简单, 简单到用css就完美解决了

            html, body {
                height: 100%;
                overflow: auto;
            }    

    就是给body加上上面的代码, 导航栏就不会隐藏了

  • 相关阅读:
    iOS仿UC浏览器顶部频道滚动效果
    OC中NSClassFromString()与NSStringFromClass()的用法及应用场景
    利用工具MailUtils实现邮件的发送,遇到的大坑,高能预警!!
    使用response实现文件下载注意点
    mac版MyEclipse的安装及创建web项目
    Mac系统下安装Tomcat,以及终端出现No such file or directory的错误提示解决方案
    机器学习笔记-Python简介
    解决mscordacwks.dll不一致问题
    IIS日志如何记录X-Forwarded-For
    深入理解Redis(番外)——持久化
  • 原文地址:https://www.cnblogs.com/shenjp/p/8888461.html
Copyright © 2011-2022 走看看