相信很多小伙伴們應(yīng)該有發(fā)現(xiàn)到不同的設(shè)備在使用的時(shí)候都不時(shí)不時(shí)出現(xiàn)一些設(shè)備兼容的問(wèn)題,那么今天我們就來(lái)說(shuō)說(shuō)有關(guān)于:“html5對(duì)于不同IOS設(shè)備不同問(wèn)題總結(jié)分享! ”這個(gè)方面的內(nèi)容。
1、日期問(wèn)題
對(duì)于yyyy-mm-dd hh:mm:ss 這種格式在ios系統(tǒng)不識(shí)別
時(shí)間格式化的時(shí)候,在瀏覽器端處理好好的,到了手機(jī)端,就變成NAN,或者null,這種情況,是ios系統(tǒng)不能轉(zhuǎn)化這種類(lèi)型的時(shí)間。
let date = new Date('2019-02-28 18:33:24'); // null`
解決方案是,轉(zhuǎn)成 yyyy/mm/dd hh:mm:ss 這種格式就可以了
replace(/-/g, "/")
2、鍵盤(pán)收起,頁(yè)面卡住,不回落
ios12上,發(fā)現(xiàn)鍵盤(pán)收起的時(shí)候,頁(yè)面會(huì)卡主,留下底部一片空白,稍微動(dòng)一下頁(yè)面,就會(huì)恢復(fù)。
這種問(wèn)題,在網(wǎng)上查了很多解決方案,大致是在blur事件中,讓頁(yè)面滾動(dòng)一下
window.scrollTo(0, scroll);
但是有一個(gè)很?chē)?yán)重的問(wèn)題:如果頁(yè)面上有按鈕需要操作 ,例如,評(píng)論的輸入框+發(fā)布按鈕,輸入完文字,點(diǎn)擊“發(fā)布”,觸發(fā)click事件的時(shí)候,會(huì)導(dǎo)致頁(yè)面先觸發(fā)blur事件,鍵盤(pán)回落,然后一切就結(jié)束了。。。。按鈕點(diǎn)擊沒(méi)有起任何作用。
解決方案: 把click事件更換成ontouchstart 可以解決這個(gè)問(wèn)題。 ontouchstart 事件優(yōu)于click事件觸發(fā)
3、ios12在微信小程序的webview,鍵盤(pán)收回,頁(yè)面底部會(huì)留白
這個(gè)問(wèn)題懷疑是頁(yè)面的scroll設(shè)置了auto導(dǎo)致的
4、iphone fix 失效,導(dǎo)致一些機(jī)器上textarea光標(biāo)偏移
解決方案: 所有兄弟元素變成absolute, 父元素overflow:auto;
父元素:
height: 100vh;
position: relative;
overflow: auto;
兄弟元素:
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
overflow-x: visible;
overflow-y: auto;
padding-bottom: 10px;
z-index: 1
5、鍵盤(pán)遮擋輸入框
輸入框如果使用了fixed固定在底部,鍵盤(pán)頂起的時(shí)候,iphone上fixed會(huì)失效,導(dǎo)致頁(yè)面滾動(dòng)輸入框會(huì)隨著頁(yè)面滾動(dòng),并且在部分機(jī)型上,輸入框偶爾會(huì)被鍵盤(pán)遮擋,這種偶現(xiàn)的問(wèn)題,很不友好
解決方案: 放棄使用fixed布局,頁(yè)面如果有滾動(dòng),也放棄absolute,如果強(qiáng)行要使用absolute,請(qǐng)參考上一條光標(biāo)偏移
建議使用flex布局,兼容性會(huì)得到解決。
當(dāng)然,如果遇到以上這些問(wèn)題,說(shuō)明產(chǎn)品設(shè)計(jì)就很不合理,如果必要的話(huà),還是要更換設(shè)計(jì),改成input不需要被鍵盤(pán)頂起的設(shè)計(jì),這些兼容性的解決方案,也不并不能完美的解決所有機(jī)型的問(wèn)題。
相信在小編今天總結(jié)分享的有關(guān)于:“html5對(duì)于不同IOS設(shè)備不同問(wèn)題總結(jié)分享! ”這方面的相關(guān)內(nèi)容對(duì)大家的收獲也是不少的,當(dāng)然更多的內(nèi)容我們也可以在W3Cschool中進(jìn)行學(xué)習(xí)和了解!