美文网首页
移动端开发常识

移动端开发常识

作者: 郝特么冷 | 来源:发表于2017-09-04 15:15 被阅读43次

    古诗推荐

    木兰花·拟古决绝词柬友
    [清]纳兰性德
    人生若只如初见,
    何事秋风悲画扇。
    等闲变却故人心,
    却道故人心易变。
    骊山语罢清宵半,
    类雨霖铃终不怨。
    何如薄幸锦衣郎,
    比翼连枝当日愿。


    移动端开发基本常识

    首先是屏幕自适应

    ! function(n) {
        var e = n.document,
            t = e.documentElement,
            i = 720,
            d = i / 100,
            o = "orientationchange" in n ? "orientationchange" : "resize",
            a = function() {
                var n = t.clientWidth || 320;
                n > 720 && (n = 720), t.style.fontSize = n / d + "px"
            };
        e.addEventListener && (n.addEventListener(o, a, !1), e.addEventListener("DOMContentLoaded", a, !1))
    }(window);
    

    上边的代码是小米官网对于屏幕自适应的处理。我这里也是参考的。


    兼容问题

    移动端兼容就几个问题,主要就是苹果手机和华为手机的兼容,尤其是华为荣耀。本人对其特别无语。
    在苹果上有一个点击延迟的问题,之前我自己开发遇到过(其实也是经验不足)。我用的是fastclick来处理的。

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

    首先引入fastclick,之后再引入这段代码如果是引入了jQuery可以直接引入

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

    华为手机是问题最多的机型

    对于一些很普通的属性比如CSS3中的calc(),flex布局等。在华为上还得用那些传统的布局,比如浮动等去解决问题。作为移动端网站开发尽量要考虑到这个机型,如果说你用flex布局一定要考虑好在华为中的兼容问题。


    手机端的超链接

    之前写a标签的时候后边不加target结果发现在jQuery-mobile中是存在问题的,所以在移动端开发中必须加这个属性。
    还有就是一些功能,比如打电话,发邮件,调取QQ对话等等。
    QQ对话开启:

    <a href="http://wpa.qq.com/msgrd?v=3&uin=261177191&site=qq&menu=yes" data-qq="261177191" target="_blank"></a>
    

    打电话:

    <a href="tel:17181471334" target="_blank"></a>
    

    发邮件:

    <a href="mailto:xxx@xx.com">联系站长</a>
    <a href="mailto:xxx@xx.com?cc=xxxx@xx.com">联系站长</a>
    <a href="mailto:xxx@xx.com?bcc=xxxx@xx.com">联系站长</a>
    <a href="mailto:xxx@xx.com?subject=给你主页提个建议">有话直说</a>
    <a href="mailto:xxx@xx.com?body=你的网页做得不错啊,不过就是人气不够哦">评价</a>
    <a href="mailto:xxx@xx.com,xxxx@xx.com">联系站长</a>
    

    阴影的处理

    在iOS上,输入框默认有内部阴影,但无法使用 box-shadow 来清除,如果不需要阴影,可以这样关闭:

    input,textarea {
          border: 0;
          -webkit-appearance: none;
        }
    

    字体的处理

    对于网站字体设置

    • 移动端项目:
      font-family:Tahoma,Arial,Roboto,"Droid Sans","Helvetica Neue","Droid Sans Fallback","Heiti 
    SC",sans-self;
    
    • 移动和pc端项目:
      font-family:Tahoma,Arial,Roboto,"Droid Sans","Helvetica Neue","Droid Sans Fallback","Heiti SC","Hiragino Sans GB",Simsun,sans-self;
    
    • 字体大小尽量使用pt或者em,rem,代替px。

    • 设置input里面placeholder字体的大小

    ::-webkit-input-placeholder{ font-size:10pt;}
    .main input::-webkit-input-placeholder{
        color: #CCCCCC;opacity:1;
    }
    
    • 解决字体在移动端比例缩小后出现锯齿的问题:
    -webkit-font-smoothing: antialiased;
    

    框架

    • 移动端基础框架
        zepto.js 语法与jquery几乎一样,会jquery基本会zepto~
        iscroll.js 解决页面不支持弹性滚动,不支持fixed引起的问题~ 实现下拉刷新,滑屏,缩放等功能~
        underscore.js 该库提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象。
        fastclick 加快移动端点击响应时间
        animate.css CSS3动画效果库
        Normalize.css Normalize.css是一种现代的、CSS reset为HTML5准备的优质替代方案
    • 滑屏框架
        适合上下滑屏、左右滑屏等滑屏切换页面的效果
        slip.js
        iSlider.js
        fullpage.js
        swiper
    • 瀑布流框架
        masonry
    • 工具推荐
        caniuse 各浏览器支持html5属性查询
        paletton 调色搭配

    动画的处理

    开启硬件加速解决页面闪白保证动画流畅

    .css {
      -webkit-transform: translate3d(0, 0, 0);
      -moz-transform: translate3d(0, 0, 0);
      -ms-transform: translate3d(0, 0, 0);
      transform: translate3d(0, 0, 0);
    }
    
    • 设计高性能CSS3动画的几个要素
    • 尽可能地使用合成属性transform和opacity来设计CSS3动画,
    • 不使用position的left和top来定位
    • 利用translate3D开启GPU加速

    消除闪烁

    消除transition闪屏

    .css{
      -webkit-transform-style: preserve-3d;
      -webkit-backface-visibility: hidden;
    }
    

    移动端取消touch高亮效果

    在做移动端页面时,会发现所有a标签在触发点击时或者所有设置了伪类 :active 的元素,默认都会在激活状态时,显示高亮框,如果不想要这个高亮,那么你可以通过css以下方法来禁止:

    .xxx {
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    }
    

    相关文章

      网友评论

          本文标题:移动端开发常识

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