移动端开发常识

2017-09-04  本文已影响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;
  font-family:Tahoma,Arial,Roboto,"Droid Sans","Helvetica Neue","Droid Sans Fallback","Heiti SC","Hiragino Sans GB",Simsun,sans-self;
::-webkit-input-placeholder{ font-size:10pt;}
.main input::-webkit-input-placeholder{
    color: #CCCCCC;opacity:1;
}
-webkit-font-smoothing: antialiased;

框架


动画的处理

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

.css {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

消除闪烁

消除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);
}
上一篇下一篇

猜你喜欢

热点阅读