1.瀏覽窗口寬帶等於設備寬度css
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
2.禁止數字識別爲電話號碼html
<meta name="format-detection" content="telephone=no" />
3.禁止安卓識別郵箱html5
<meta name="format-detection" content="email=no" />
4.移動端頁面基本模板jquery
<!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"> <title>title</title> <link rel="stylesheet" href="style.css"> </head> <body> content </body> </html>
其餘:android
1.取消input在ios下,輸入的時候英文首字母的默認大寫ios
<input autocapitalize="off" autocorrect="off" />
2.android 上去掉語音輸入按鈕git
input::-webkit-input-speech-button {display: none}
3.屏幕旋轉的事件和樣式github
window.onorientationchange = function(){ switch(window.orientation){ case -90: case 90: alert("橫屏:" + window.orientation); case 0: case 180: alert("豎屏:" + window.orientation); break; } }
//豎屏時使用的樣式 @media all and (orientation:portrait) { .css{} } //橫屏時使用的樣式 @media all and (orientation:landscape) { .css{} }
4.audio元素和video元素在ios和andriod中沒法自動播放web
$('html').one('touchstart',function(){ audio.play() })
其餘相關: 編程
1.ios7+支持自動播放
2.支持Airplay的設備(如:音箱、Apple TV)播放
x-webkit-airplay="true"
3.播放視頻不全屏
webkit-playsinline="true"
以上代碼用法以下
<video x-webkit-airplay="true" webkit-playsinline="true" preload="auto" autoplay src="http://"></video>
5.搖一搖功能
//事件監聽 if ((window.DeviceMotionEvent) { window.addEventListener('devicemotion', deviceMotionHandler, false); } else { document.getElementById("dmEvent").innerHTML = "Not supported on your device." } //捕捉重力加速度 var acceleration = eventData.accelerationIncludingGravity; //搖一搖demo var SHAKE_THRESHOLD = 800; var last_update = 0; var x, y, z, last_x, last_y, last_z; function deviceMotionHandler(eventData) { var acceleration =eventData.accelerationIncludingGravity; var curTime = new Date().getTime(); if ((curTime - last_update)> 300) { var diffTime = curTime -last_update; last_update = curTime; x = acceleration.x; y = acceleration.y; z = acceleration.z; var speed = Math.abs(x +y + z - last_x - last_y - last_z) / diffTime * 10000; if (speed > SHAKE_THRESHOLD) { alert("shaked!"); } last_x = x; last_y = y; last_z = z; } }
參考:http://segmentfault.com/a/1190000003095883
6.手機拍照和上傳圖片
<!-- 選擇照片 --> <input type=file accept="image/*"> <!-- 選擇視頻 --> <input type=file accept="video/*">
使用總結:
7.微信瀏覽器用戶調整字體大小後頁面矬了,怎麼阻止用戶調整
緣由
android側是複寫了layoutinflater 對textview作了統一處理
ios側是修改了body.style.webkitTextSizeAdjust值
解決方案:
android使用如下代碼,該接口只在微信瀏覽器下有效(感謝jationhuang同窗提供)
/** * 頁面加入這段代碼可以使Android機器頁面再也不受到用戶字體縮放強制改變大小 * 可是會有一個1秒左右的延遲,期間能夠考慮經過loading展現 * 僅供參考 */ (function(){ if (typeof(WeixinJSBridge) == "undefined") { document.addEventListener("WeixinJSBridgeReady", function (e) { setTimeout(function(){ WeixinJSBridge.invoke('setFontSizeCallback',{"fontSize":0}, function(res) { alert(JSON.stringify(res)); }); },0); }); } else { setTimeout(function(){ WeixinJSBridge.invoke('setFontSizeCallback',{"fontSize":0}, function(res) { alert(JSON.stringify(res)); }); },0); } })();
其餘bug
參考《High Performance Animations》
解決方案
參考
《移動端web頁面使用position:fixed問題總結》
《使用iScroll.js解決ios4下不支持position:fixed的問題》
winphone下默認觸摸事件事件使用e.preventDefault是無效的
目前解決方法是使用樣式來禁用
html{-ms-touch-action: none;}/* 禁止winphone默認觸摸事件 */
參考
《Windows phone 8 touch support》
語法與jquery幾乎同樣,會jquery基本會zepto~
最新版本已經更新到1.16
中文(非官網):http://www.css88.com/doc/zeptojs_api/
常使用的擴展模塊:
瀏覽器檢測:https://github.com/madrobby/zepto/blob/master/src/detect.js
tap事件:https://github.com/madrobby/zepto/blob/master/src/touch.js
解決頁面不支持彈性滾動,不支持fixed引發的問題~
實現下拉刷新,滑屏,縮放等功能~
最新版本已經更新到5.0
筆者沒用過,不過據說好用,推薦給你們~
該庫提供了一整套函數式編程的實用功能,可是沒有擴展任何JavaScript內置對象。
最新版本已經更新到1.8.2
適合上下滑屏、左右滑屏等滑屏切換頁面的效果
摘錄原文:http://www.cnblogs.com/PeunZhang/p/3407453.html#question_18