收集移動端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)
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章