移动Web开发技巧--下

20.模拟按钮hover效果 移动端触摸按钮的效果,可明示用户有些事情正要发生,是一个比较好体验,可是移动设备中并无鼠标指针,使用css的hover并不能知足咱们的需求,还好国外有个激活css的active效果,代码以下,javascript

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta content="telephone=no" name="format-detection">
<meta content="email=no" name="format-detection">
<style type="text/css">
a{-webkit-tap-highlight-color: rgba(0,0,0,0);}
.btn-blue{display:block;height:42px;line-height:42px;text-align:center;border-radius:4px;font-size:18px;color:#FFFFFF;background-color: #4185F3;}
.btn-blue:active{background-color: #357AE8;}
</style>
</head>
<body>

<div class="btn-blue">按钮</div>

<script type="text/javascript">
document.addEventListener("touchstart", function(){}, true)
</script>
</body>
</html>

兼容性ios5+、部分android 4+、winphone 8
要作到全兼容的办法,可经过绑定ontouchstart和ontouchend来控制按钮的类名php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta content="telephone=no" name="format-detection">
<meta content="email=no" name="format-detection">
<style type="text/css">
a{-webkit-tap-highlight-color: rgba(0,0,0,0);}
.btn-blue{display:block;height:42px;line-height:42px;text-align:center;border-radius:4px;font-size:18px;color:#FFFFFF;background-color: #4185F3;}
.btn-blue-on{background-color: #357AE8;}
</style>
</head>
<body>

<div class="btn-blue">按钮</div>

<script type="text/javascript">
var btnBlue = document.querySelector(".btn-blue");
btnBlue.ontouchstart = function(){
    this.className = "btn-blue btn-blue-on"
}
btnBlue.ontouchend = function(){
    this.className = "btn-blue"
}
</script>
</body>
</html>

21.屏幕旋转的事件和样式 事件
window.orientation,取值:正负90表示横屏模式、0和180表现为竖屏模式;css

window.onorientationchange = function(){
            switch(window.orientation){
                case -90:
                case 90:
                alert("横屏:" + window.orientation);
                case 0:
                case 180:
                alert("竖屏:" + window.orientation);
                break;
            }
}

样式html

//竖屏时使用的样式 @media all and (orientation:portrait) {
    .css{}
}
 //横屏时使用的样式 @media all and (orientation:landscape) {
    .css{}
}

22.audio元素和video元素在ios和andriod中没法自动播放 应对方案:触屏即播前端

$('html').one('touchstart',function(){
    audio.play()
})

23.摇一摇功能 HTML5 deviceMotion:封装了运动传感器数据的事件,能够获取手机运动状态下的运动加速度等数据。
24.手机拍照和上传图片html5

<input type="file">

的accept 属性java

<!-- 选择照片 -->
<input type=file accept="image/*">
<!-- 选择视频 -->
<input type=file accept="video/*">

使用总结:
ios 有拍照、录像、选取本地图片功能
部分android只有选取本地图片功能
winphone不支持
input控件默认外观丑陋jquery

  1. 消除transition闪屏
.css{
    /*设置内嵌的元素在 3D 空间如何呈现:保留 3D*/
    -webkit-transform-style: preserve-3d;
    /*(设置进行转换的元素的背面在面对用户时是否可见:隐藏)*/
    -webkit-backface-visibility: hidden;
}

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

.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加速ios

  1. android 上去掉语音输入按钮
input::-webkit-input-speech-button {display: none}

框架 1. 移动端基础框架 zepto.js 语法与jquery几乎同样,会jquery基本会zepto~
iscroll.js 解决页面不支持弹性滚动,不支持fixed引发的问题~ 实现下拉刷新,滑屏,缩放等功能~

underscore.js 该库提供了一整套函数式编程的实用功能,可是没有扩展任何JavaScript内置对象。

fastclick 加快移动端点击响应时间
animate.css CSS3动画效果库

  1. 滑屏框架 适合上下滑屏、左右滑屏等滑屏切换页面的效果

slip.js
iSlider.js
fullpage.js
3.瀑布流框架 masonry
工具推荐 caniuse 各浏览器支持html5属性查询
paletton 调色搭配

转载请注明:前端录»移动Web开发技巧--下
转载于猿2048:➵《移动Web开发技巧--下》

相关文章
相关标签/搜索