#每日一記#iOS Safari 中無法通過 <meta> 禁止縮放的問題

每日一記 - 但并不日更

發(fā)現(xiàn)在 iphone 手機中即使設置了 <meta> 也無法禁止縮放的問題。

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" /> 

Webkit 官方解釋

如果你懶得看上面的文章踱阿,那么大意是這些屬性本來是通過合適的設置來增強用戶體驗的纱昧,結(jié)果大部分情況下都被直接設置成禁止縮放,造成低分辨率設備上很難看清文字获茬。所以 Webkit 在 iOS 10 后不再對這樣的設置生效。

不過有些專為手機端設計的單頁面應用倔既,在禁止用戶縮放后能帶來更好的用戶體驗恕曲,那么在 safari 上要如何設置呢。

我在網(wǎng)上搜索了一些答案渤涌,可惜的是這些答案目前已經(jīng)無法正常使用了佩谣。

小貓無奈
// 已經(jīng)失效的代碼
window.onload = function () {
    document.addEventListener('touchstart', function (event) {
        if (event.touches.length > 1) {
            event.preventDefault();
        }
    });
    var lastTouchEnd = 0;
    document.addEventListener('touchend', function (event) {
        var now = (new Date()).getTime();
        if (now - lastTouchEnd <= 300) {
            event.preventDefault();
        }
        lastTouchEnd = now;
    }, false);
};

上面這個例子在通過檢測觸摸的手指數(shù)量,如果大于2個指頭則禁止默認事件觸發(fā)实蓬。如果300毫秒內(nèi)快速點擊也禁止默認事件觸發(fā)稿存。

不過雙指縮放無法正常工作。

事件

在 chrome 中發(fā)現(xiàn)這邊 touchstart 事件被自動添加了 passive:true瞳秽,這個屬性是干什么的呢瓣履,一句話解釋起來就是事件回調(diào)函數(shù)中的 event.preventDefault() 都不生效

// 改進后的事件監(jiān)聽
window.onload = function () {
    document.addEventListener('touchstart', function (event) {
        if (event.touches.length > 1) {
            event.preventDefault();
        }
    }, {
        passive: false  // 關閉被動監(jiān)聽
    });
    var lastTouchEnd = 0;
    document.addEventListener('touchend', function (event) {
        var now = (new Date()).getTime();
        if (now - lastTouchEnd <= 300) {
            event.preventDefault();
        }
        lastTouchEnd = now;
    }, false);
};

羅小黑寫寫文字

如果喜歡文章 請留下一個贊~
如果喜歡文章 分享給更多人~

掘金中關注我
簡書中關注我

自由轉(zhuǎn)載-非商用-非衍生-保持署名(創(chuàng)意共享3.0許可證
轉(zhuǎn)載時請保留原文鏈接 以保證可及時獲取對文章的訂正和修改

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末练俐,一起剝皮案震驚了整個濱河市袖迎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌腺晾,老刑警劉巖燕锥,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異悯蝉,居然都是意外死亡归形,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門鼻由,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暇榴,“玉大人厚棵,你說我怎么就攤上這事“簦” “怎么了婆硬?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奸例。 經(jīng)常有香客問我彬犯,道長,這世上最難降的妖魔是什么查吊? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任谐区,我火速辦了婚禮,結(jié)果婚禮上逻卖,老公的妹妹穿的比我還像新娘卢佣。我一直安慰自己,他們只是感情好箭阶,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布虚茶。 她就那樣靜靜地躺著,像睡著了一般仇参。 火紅的嫁衣襯著肌膚如雪嘹叫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天诈乒,我揣著相機與錄音罩扇,去河邊找鬼。 笑死怕磨,一個胖子當著我的面吹牛喂饥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肠鲫,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼员帮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了导饲?” 一聲冷哼從身側(cè)響起捞高,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎渣锦,沒想到半個月后硝岗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡袋毙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年型檀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片听盖。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡胀溺,死狀恐怖裂七,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情月幌,我是刑警寧澤碍讯,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布悬蔽,位于F島的核電站扯躺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蝎困。R本人自食惡果不足惜录语,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望禾乘。 院中可真熱鬧澎埠,春花似錦、人聲如沸始藕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伍派。三九已至江耀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诉植,已是汗流浹背祥国。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晾腔,地道東北人舌稀。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像灼擂,于是被迫代替她去往敵國和親壁查。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

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