收集移動端iOS和Android兼容性問題
一、h1/h2/h3/h4/h5/h6標籤樣式
Android: 有加粗字號加大的效果
iOS: 沒有以上效果
解決辦法: 在基礎樣式中, 如下設置
h1, h2, h3, h4, h5, h6 {
margin: 0;
padding: 0;
box-sizing: border-box;
text-decoration: none;
font-weight: normal;
font-size: 100%;
}
二、Date.parse(日期格式)
Android: 2018-12-11 2018/12/11
iOS: 2018/12/11
解決辦法: 使用2018/12/11 這樣的日期格式, 完美~
案例:
iOS Date.parse()不識別'2018-12-11',所以這個函數不起正確的作用, 後來改成'2018/12/11', 才起正確的作用
function contrastTime(evalue, num) {
console.log(evalue)
var dB = new Date(evalue.replace(/[\.]/g,'/')); //獲取當前選擇日期
var d = new Date();
var str = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate(); //獲取當前實際日期
// alert(Date.parse(str) + "," + Date.parse(dB) + "," + num );
if (Date.parse(str) > Date.parse(dB)) { //時間戳對比
// alert(Date.parse(str) + "," + Date.parse(dB) + "," + num );
return 0;
}
return 1;
}
三、flex佈局
Android: 支持
iOS: 記不清幾不支持了, 總之用的時候, 寫上兼容性的樣式纔好, 加上-webkit等, 具體的, 百度吧. 或者有時間我再整理
四、倒計時
Android: 都行
iOS: js後臺運行的時間比較短, 如果用定時器寫倒計時, 會不準確. 建議用時間戳寫倒計時.
function sendMessage() {
var sendtime;
var num = 60;
var beginTime = new Date().getTime(); // 記錄及時開始的時間
//倒計時
if ($(this).attr('class').indexOf('send-act') > -1) { //如果類名中有send-act,結束函數
return false
}
$(this).html('60秒後重發')
$(this).addClass('send-act')
clearInterval(sendtime)
sendtime = setInterval(function () {
// num--
var newTime = new Date().getTime(); // 拿到此刻當下的時間
var dTime = (newTime - beginTime) / 1000; // 還剩下的時間
dTime = parseInt(dTime);
num = 60 - dTime > 0 ? 60 - dTime : 0
if (num > 0) {
$('.log-send').html((num >= 10 ? num : '0' + num) + '秒後重發')
} else {
$('.log-send').html('重新發送')
$('.log-send').removeClass('send-act')
clearInterval(sendtime)
}
}, 1000)
}