移動端的那些坑

作者:LeuisKen

https://segmentfault.com/n/1330000011368344

iOS Safari

Safari下使用border-image掰邢,不能設(shè)置border-color: transparent垦页。

使用<meta name="format-detection" content="telephone=no" />解決連續(xù)數(shù)字誤識別為電話號碼導(dǎo)致樣式出錯的問題破停。

Safari的iframe會自動去適應(yīng)內(nèi)容大小而無視CSS中設(shè)置的width恨憎,該特性只能通過scrolling="no"屬性關(guān)閉,并通過設(shè)置如下CSS樣式設(shè)置width:width: 1px; min-width: 100%;;但是設(shè)置scrolling="no"會導(dǎo)致安卓下iframe無法滑動励负,目前只能通過UA設(shè)備判斷解決捶牢。

Safari 10以下的flex布局不認(rèn)widthflex-basis,但是會認(rèn)min-width,詳見Can I Use 中 flex 的 Known issue第一條拍柒。

在 Safari 中心傀,setTimeout 無法觸發(fā) focus 事件,且不支持 autofocus 屬性拆讯≈校可以使用Promise.resolve().then()來執(zhí)行需要異步的 focus 代碼。

iOS 10 safari 會無視meta user-scalable=no种呐,需要用e.preventDefault來解決宰翅。個人解決方案mobile-polyfill/ios10-user-scalable-no.js。建議結(jié)合ua-parser-js使用爽室,因為iOS 10+的其他瀏覽器(QQ汁讼、UC)等都還是尊敬這個東西的。

Safari下開無痕瀏覽模式,操作localStorage會直接報錯嘿架,需要try catch瓶珊。

某同學(xué)用unescape解析encodeURIComponent編碼的信息,掉進了亂碼的坑耸彪。

type=search有坑伞芹。

position:fixed有坑。

部分版本的padStart/padEnd實現(xiàn)有bug蝉娜,會出現(xiàn)null

http://www.joycesong.com/arch…
ios版本:11.1-11.3
使用swiper或者transform屬性時唱较,有一定概率出現(xiàn)transform的元素以外的所有?
元素都消失,上下滑動一下頁面又出現(xiàn)了召川。
給外層元素加一個overflow:hidden屬性即可解決南缓。

當(dāng)使用-webkit-overflow-scrolling: touch;時,同時使用::-webkit-scrollbar偽類的display:none隱藏滾動條在iOS 11+出現(xiàn)失效的情況扮宠,需要使用如下方案解決西乖,參考:https://stackoverflow.com/que…

Andriod

針對部分瀏覽器非預(yù)期的緩存機制,需要服務(wù)端添加如下HTTP頭信息:

部分機型touchmove事件不連續(xù)觸發(fā)

Android的事件每次都要經(jīng)過瀏覽器內(nèi)核再發(fā)往UI線程坛增,為了提高效率获雕,如果瀏覽器內(nèi)核中沒有設(shè)置preventDefault,Android就認(rèn)為該頁面元素不需要touchmove事件收捣,于是下次的事件就不經(jīng)過內(nèi)核届案,直接發(fā)往UI線程,于是js中就捕獲不到touchmove事件罢艾。
解決方案:在事件響應(yīng)的地方設(shè)置preventDefault楣颠,這樣就可以源源不絕地接收到touch事件,比如在touchstart事件中執(zhí)行e.preventDefault()咐蚯,touchmove事件就會連續(xù)觸發(fā)童漩。但是這種做法會取消掉瀏覽器其他的默認(rèn)行為,比如頁面默認(rèn)的滾動春锋。矫膨。。

字號小于12px期奔,或字號不是偶數(shù)侧馅,部分機型文字無法居中的問題
解決方案:使用transform: scale(0.5)進行縮放 or 字號大一點

scroll 相關(guān)方法兼容問題
CSSOM 視圖模型新增了一些 scroll 相關(guān)的方法,參考:https://drafts.csswg.org/csso…
polyfill:https://github.com/iamdustan/…

綜合問題

禁止頁面滑動

當(dāng)你需要禁止移動端頁面滑動的時候呐萌,在iOS下馁痴,需要禁止頁面中的touchmove事件,在安卓下肺孤,需要給html, body元素加上如下CSS:height:100%;overflow:hidden;罗晕。

推薦使用以下代碼進行處理:


css.sm-no-scroll?{
????height:?100%;
????overflow:?hidden;
}

但由于禁掉了touchmove事件济欢,導(dǎo)致iOS下你希望滾動的部分也無法滾動了,因此對于希望滾動的部分攀例,通過e.stopPropagation保留原有滾動效果船逮,并針對回彈動畫的交互,建議使用如下代碼聲明一個可滾動區(qū)域:

/*?以下屬性添加到滾動容器上?*/
-webkit-overflow-scrolling:?touch;
overflow:?auto;

被屏蔽的 class

有些瀏覽器或者插件會通過DOM元素的class來識別是否為廣告粤铭,并隱藏或者直接刪除DOM挖胃。

1、mask

2梆惯、banner

3酱鸭、fixed

4、sticky

點透

移動端的 click 觸發(fā)順序是touchstart->touchmove->touchend->mousedown->mousemove->mouseenter->click垛吗。

在重疊的區(qū)域里凹髓,被遮蓋的元素綁定click,遮蓋的元素綁定touch事件怯屉,且touch后遮蓋的元素會隱藏的話蔚舀,就會造成穿透,因為click是在touch之后延遲觸發(fā)的锨络,瀏覽器會誤認(rèn)為是在遮蓋的元素上觸發(fā)了click赌躺。

解決方案:fastclick?or?point-event:none

感興趣的小伙伴羡儿,可以關(guān)注公眾號【grain先森】礼患,回復(fù)關(guān)鍵詞 “vue”,獲取更多資料掠归,更多關(guān)鍵詞玩法期待你的探索~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缅叠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子虏冻,更是在濱河造成了極大的恐慌肤粱,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厨相,死亡現(xiàn)場離奇詭異领曼,居然都是意外死亡,警方通過查閱死者的電腦和手機领铐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門悯森,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宋舷,“玉大人绪撵,你說我怎么就攤上這事∽r穑” “怎么了音诈?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵幻碱,是天一觀的道長。 經(jīng)常有香客問我细溅,道長褥傍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任喇聊,我火速辦了婚禮恍风,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘誓篱。我一直安慰自己朋贬,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布窜骄。 她就那樣靜靜地躺著锦募,像睡著了一般。 火紅的嫁衣襯著肌膚如雪邻遏。 梳的紋絲不亂的頭發(fā)上糠亩,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音准验,去河邊找鬼赎线。 笑死,一個胖子當(dāng)著我的面吹牛沟娱,可吹牛的內(nèi)容都是我干的氛驮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼济似,長吁一口氣:“原來是場噩夢啊……” “哼矫废!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起砰蠢,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蓖扑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后台舱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體律杠,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年竞惋,在試婚紗的時候發(fā)現(xiàn)自己被綠了柜去。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡拆宛,死狀恐怖嗓奢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浑厚,我是刑警寧澤股耽,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布根盒,位于F島的核電站,受9級特大地震影響物蝙,放射性物質(zhì)發(fā)生泄漏炎滞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一诬乞、第九天 我趴在偏房一處隱蔽的房頂上張望册赛。 院中可真熱鬧,春花似錦震嫉、人聲如沸击奶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柜砾。三九已至,卻和暖如春换衬,著一層夾襖步出監(jiān)牢的瞬間痰驱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工瞳浦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留担映,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓叫潦,卻偏偏與公主長得像蝇完,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子矗蕊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的傻咖。 ??事件朋魔,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,490評論 1 11
  • mobileHack 這里收集了許多移動端上遇到的各種坑與相對解決方案 工具類網(wǎng)站 HTML5 與 CSS3 技術(shù)...
    Zoemings閱讀 6,530評論 0 12
  • _________________________________________________________...
    fastwe閱讀 1,263評論 0 0
  • 你好警检,舊時光 “不好意思,我們的員工的工資靠每天的干活來的害淤,你來了都沒幫到忙扇雕,我們這里不需要你】悖”(兼職老板的回復(fù)...
    彭穗碎閱讀 256評論 0 0
  • 聽完了Judy老師的課程镶奉,感覺收獲非常大。 在這些溫暖的干貨中,老師說到的自我定位對我來說是最有啟發(fā)的一點腮鞍。12月...
    暖暖內(nèi)含光呀閱讀 231評論 0 0