• 移动端常见问题总结


    1.判断机型:

    // 判断手机是移动端还是安卓
    var u = navigator.userAgent;
    var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
    var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

    2.用scroll来解决ios唤起软键盘时absolute定位在最下方的元素错位:

    var bfscrolltop = document.body.scrollTop;//获取软键盘唤起前浏览器滚动部分的高度
        $(".txt").focus(function(){//在这里‘input.inputframe’是我的底部输入栏的输入框,当它获取焦点时触发事件
            interval = setInterval(function(){//设置一个计时器,时间设置与软键盘弹出所需时间相近
            document.body.scrollTop = document.body.scrollHeight;//获取焦点后将浏览器内所有内容高度赋给浏览器滚动部分高度
            },100)
        }).blur(function(){//设定输入框失去焦点时的事件
            clearInterval(interval);//清除计时器
            document.body.scrollTop = bfscrolltop;//将软键盘唤起前的浏览器滚动部分高度重新赋给改变后的高度
        });
    
        // 安卓键盘弹出处理
        var clientHeight = document.documentElement.clientHeight || document.body.clientHeight;
        $(window).on('resize', function () {
            var nowClientHeight = document.documentElement.clientHeight || document.body.clientHeight;
            if (clientHeight > nowClientHeight) {
                console.log("安卓弹出")
            }
            else {
                $(".bottom_name").addClass("none")
            }
        });

    3.用2的方法解决软键盘的问题时需要给最外层的box设置height:auto;overflow-y:scroll;但是如果后台用了lazyload插件会要求不能使用height:auto;overflow-y:scroll,因为它需要根据scroll去判断页面是否滚动,是否需要加载内容。

    4.有些事件在ios需要双击才能触发,可以用下面人为的方法触发两次

      a.click();

      setTimeout(function(){

        a.click()

      },100)

    var bfscrolltop = document.body.scrollTop;//获取软键盘唤起前浏览器滚动部分的高度    $(".txt").focus(function(){//在这里‘input.inputframe’是我的底部输入栏的输入框,当它获取焦点时触发事件        interval = setInterval(function(){//设置一个计时器,时间设置与软键盘弹出所需时间相近        document.body.scrollTop = document.body.scrollHeight;//获取焦点后将浏览器内所有内容高度赋给浏览器滚动部分高度        },100)    }).blur(function(){//设定输入框失去焦点时的事件        clearInterval(interval);//清除计时器        document.body.scrollTop = bfscrolltop;//将软键盘唤起前的浏览器滚动部分高度重新赋给改变后的高度    });
        // 安卓键盘弹出处理    var clientHeight = document.documentElement.clientHeight || document.body.clientHeight;    $(window).on('resize', function () {        var nowClientHeight = document.documentElement.clientHeight || document.body.clientHeight;        if (clientHeight > nowClientHeight) {            console.log("安卓弹出")        }        else {            $(".bottom_name").addClass("none")        }    });

    5.解决部分安卓机点击图片放大的效果::::

    pointer-events: none;

    6.可以通过判断页面高度与屏幕高度的系数来判断是否唤起软键盘(不用考虑单手模式),比如目前高度没有原来的三分之二高肯定是唤起了软键盘

  • 相关阅读:
    是否需要代码规范
    上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?
    作业二--------个人编程项目:四则运算。
    学习进度总结————王烁130201218
    作业一:建立博客、自我介绍、速读教材、学习进度总结
    论实习之后的感悟
    作业九 ——报告及总结
    作业四: 结对编程项目---四则运算
    代码复审
    PSP记录个人项目耗时情况
  • 原文地址:https://www.cnblogs.com/dongkx/p/9120737.html
Copyright © 2020-2023  润新知