移动端兼容处理

Posted MJ_MY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动端兼容处理相关的知识,希望对你有一定的参考价值。

首先上一段判断androidios的js代码

  function navigator(){
        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终端
        if(isAndroid){
            //安卓
        };
        if(isiOS){
            //ios
        };
    };
navigator();

IOS常见问题:

1.搜索页的搜索按钮不显示,加form解决。

<form action="">
          <input type="search" name="" id="" value="" />
 </form>

2.去除input阴影和黑边,以及type=“search”的小叉叉。

css:
//去除阴影和黑底
input:-webkit-appearance:none;(全局input都会去除阴影和黑底,可以针对某个input就行了。)


//去除小叉叉
input[type="search"]::-webkit-search-cancel-button{

     -webkit-appearance:none;
}

ios:监听键盘弹起和收起:

$(document).on("focusin",function(){

            //键盘弹出
})


$(document).on("focusout",function(){

            //键盘收起
})

ios:当头部输入框聚焦时,想要弹起底部固定定位的元素,放在键盘上方,比如footer,或者上传图片的按钮什么的,但是发现弹不起来,没关系我有解决方法。

function navigator(){
        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终端
        if(isAndroid){
            
        };
        if(isiOS){
            $(document).on("focusin",function(){
                                //键盘弹起时,让滚动条滚动到底部,
                $(window).scrollTop($("body").height());
                                 //设置定时器
                setTimeout(function(){
                                        //获取文档高度
                    var clientHeight= document.body.clientHeight;
                                         //获取滚动高度--也就是键盘高度
                    var scrollTop = document.body.scrollTop;
                    //让你想要的底部元素的bottom:键盘高度。
                    $(".bottom").css("bottom",scrollTop+"px");
                    //最后再设置一个定时器让滚动条回到顶部。
                                          setTimeout(function(){
                                               $(window).scrollTop(0);
                                          },300);
                },300);
            });
            $(document).on(‘focusout‘, function () {
                 //软键盘收起的事件处理
                                 //让底部元素回到底部。
                $(".bottom").css("bottom","0");
            });
        };
    };
navigator();                                                                                                                   

android:

1.键盘收起事件:

function navigator(){
        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终端
        if(isAndroid){
              var wHeight = $(window).innerHeight();   //获取初始可视       窗口高度
                      $(window).resize(function() {         //监测窗口大小的变化事件
                         var hh = $(window).innerHeight();     //当前可视窗口高度
                         var viewTop = $(window).scrollTop();   //可视窗口高度顶部距离网页顶部的距离
                         if(wHeight > hh){          
                                //可以作为虚拟键盘弹出事件
                     
                          }else{         
                               //可以作为虚拟键盘关闭事件
                                 
                          };
                              wHeight = hh;
                        });
        };
        if(isiOS){
        
            };
};
navigator();                                         

 

以上是关于移动端兼容处理的主要内容,如果未能解决你的问题,请参考以下文章

移动端开发兼容性处理整理

移动端兼容小计

MarkdownPad2代码高亮插件兼容移动端样式

移动端开发的注意事项

移动端&PC端CSS样式兼容代码

移动端web软键盘兼容问题