沒有什麼特別新技術,就是記錄我做移動端遇到的問題。 微信,支付寶和APP都會遇到這些問題
沒有什麼特別新技術,就是記錄我做移動端遇到的問題
2016-02-16
微信,支付寶和APP都會遇到這些問題
1、常用
<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description">
<meta name="keywords">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>****</title>
<!-- Set render engine for 360 browser -->
<meta name="renderer" content="webkit">
<!-- No Baidu Siteapp-->
<link href="。。。.css" rel="stylesheet" />
</head>
2、html5 獲取手機攝像頭與相冊問題
ios直接能選擇攝像頭和相冊,安卓機不行。
解決方式:針對Input補充capture屬性,能讓安卓機選擇攝像頭或者相冊,但1G記憶體可能存在問題,機子記憶體不夠,在保存相片時會卡頓崩潰
<input type="file" accept="image/*" capture="camera" />
*********************************************************
3、鍵盤彈出後,原本底部固定欄會受到影響
頁面有INPUT輸入框,在輸入文字或者數字時,鍵盤彈出後滾動頁面,原本底部固定欄浮動問題。底部固定欄用position: fixed方式置底。
安卓機屏幕寬度是總高度-鍵盤高,所以固定欄在鍵盤上面,不受影響
ios 底部固定欄在頁面某個位置固定不動。
解決方式:判斷機型,ios在鍵盤彈出時,底部固定欄改為position: relative 或者 absolute,放在頁面後面
依賴JQ庫,適用頁面有INPUT,底部固定欄裡面沒有INPUT
<script src="js/jquery.js"></script>
<script type="text/javascript">
var u = navigator.userAgent,
app = navigator.appVersion;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android終端或者uc瀏覽器
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端
if (isiOS) {
$("input").focus(function () { //是否用 $(":text"),看著用
var hbody = $(document.body).height() + 10; //瀏覽器當前視窗文檔body的高度
var hwindow = $(window).height();
if (hbody > hwindow) {
$(".bottom-button").css("position", "relative");
//$(".whitespace[am-mode='50px']").css("height", "0");
} else {
$(".bottom-button").css("position", "absolute");
}
}).blur(function() { //輸入框失焦後還原初始狀態
$(".bottom-button").css("position", "fixed");
});
}
</script>
*********************************************************
4、input id="txt_Date" type="date"
$("#txt_Date").focus();
文字右對齊。
ios在任意DIV使用focus直接彈出日期/時間視窗,文字不能右對齊;安卓僅時間input上獲得焦點,有游標,不會彈窗,文字有的右對齊。
解決方式:針對Input寫樣式
<div id="DateDiv">
<span style="text-align: right; float: right; ">
<input id="txt_Date" type="date" value="2016-02-15" style="min-width: 94px; text-align: right; " />
</span>
</div>
ios限制input的寬度,能實現右對齊,再使用focus能做到任意位置打開日期/時間彈窗。
安卓要把input的寬度寫到需要的寬度,使用var DatedivWidth = $("#DateDiv").width();$("#txt_Date").css("min-width", DatedivWidth);讓一定寬度內能打開日期/時間彈窗
*********************************************************