移动端开发常识
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;
- 移动和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);
}