码迷,mamicode.com
首页 > 移动开发 > 详细

移动端常见问题总结

时间:2018-06-01 11:39:19      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:element   one   触发事件   计时   resize   定位在   console   blur   tor   

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")        }    });

移动端常见问题总结

标签:element   one   触发事件   计时   resize   定位在   console   blur   tor   

原文地址:https://www.cnblogs.com/dongkx/p/9120737.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!