美文网首页
移动端的坑

移动端的坑

作者: 我是走A牧 | 来源:发表于2017-10-19 18:34 被阅读0次

    1、移动端定位最好不要用fixed,用绝对定位absolute。
    2、移动端会有点透BUG,需要touchstart的时候event.preventDefault();
    3、移动端meta功能要用好,禁止缩放,缩放比例,屏蔽电话号码等功能很实用。 (但是在ios10以上版本是无效的,需要禁止默认事件参考2)
    4、-webkit-tap-highlight-color可以取消点击高亮。
    5、有动画效果都要启动gpu加速,translate3d(0,0,0),动画位移最好都用translateX(Y、Z),效果会比top,left,right,好很多。(安卓低版本会卡死)
    6、fixed布局,会有兼容性问题,除非你只兼容移动端高版本(本人在ios9,ios8,操作系统下踩过坑,样式会乱)
    7、click事件会有300ms延迟,尽量用其他插件代替或用touchstart、touchend代替。
    8、移动的单位最好用rem,用js来计算1rem=20px(这个等于多少看自己)计算方法
    var html=document.documentElement;
    var htmlw=html.clientWidth;
    console.log((htmlw/7.5));//1rem=100px(我是按照我们公司自己的设计图换算的,我们公司移动端图是750px的)
    9、一些情况下对非可点击元素监听click事件,ios下不会触发,css增加cursor:pointer就搞定了。
    10、iOS(safari)有时候某个标签绑定点击事件无效,加了空的onclick=""就好了,如:<a onclick=""></a>
    11、<meta name="format-detection" content="telephone=no" />ios数字标签不会被默认成电话号码
    12、js方式添加translate属性 el.style.WebkitTransform=el.style.transform="translateX(100px)";
    13、浏览器滑动效果
    -webkit-overflow-scrolling:touch;/滑动效果平滑/
    14、ios下的input框无法自动获取焦点及无法自动切换焦点
    需要换一种方式进行实现
    15、ios返回上一页刷新页面问题
    可以用1 需要在当前页添加onpageshow方法,在他的下一页添加sessionStorage, 在当前页对sessionStorage的属性进行判断,然后在进行 location.reload(),
    2 利用popstate方法对下一页进行url监听,需要pushstate()往历史栈里添加一个空的对象,才可以用popstate监听到 写法:
    window.addEventListener("popstate",function(){ alert(1); location.href=document.referrer; },false); var state = { title:'' }; var title=''; var url=''; window.history.pushState(state,title,url);
    16、移动端是点击事件有一个300ms的延时,需要引入FastClick.js,写法:

     document.addEventListener('DOMContentLoaded', function() {
          FastClick.attach(document.body);
        }, false);
    

    jq写法:

    $(function() {  
        FastClick.attach(document.body);  
    });  
    

    17、移动端适配rem换算,可以引入淘宝的flexible.js以设计图为750px为基准,用法:

    <script src="flexible.js"></script>
    

    相关文章

      网友评论

          本文标题:移动端的坑

          本文链接:https://www.haomeiwen.com/subject/yehpuxtx.html