3 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個贊
在iOS 10上可以防止在Safari中進(jìn)行網(wǎng)頁擴(kuò)展,但這將涉及到您的更多工作。我猜這個論點(diǎn)是,一定程度的困難應(yīng)該阻止貨幣狂熱的開發(fā)者將“用戶可擴(kuò)展=否”放入每個視口標(biāo)簽中,并使視力受損的用戶感到不必要的困難。
盡管如此,我還是希望Apple改變它們的實(shí)現(xiàn)方式,以便有一種簡單的(元標(biāo)記)方式來禁用雙擊縮放。大多數(shù)困難與這種互動有關(guān)。
你可以用這樣的東西停止捏縮放:
document.addEventListener('touchmove', function (event) { if (event.scale !== 1) { event.preventDefault(); }}, false);
請注意,如果任何更深層的目標(biāo)在事件上調(diào)用stopPropagation,則事件將不會到達(dá)文檔,并且此偵聽器將不會阻止縮放行為。
禁用雙擊縮放類似。您可以在之前的點(diǎn)擊300毫秒內(nèi)禁用對文檔的任何點(diǎn)擊:
var lastTouchEnd = 0;document.addEventListener('touchend', function (event) { var now = (new Date()).getTime(); if (now - lastTouchEnd <= 300) { event.preventDefault(); } lastTouchEnd = now;}, false);
如果您沒有正確設(shè)置表單元素,則關(guān)注輸入將自動縮放,并且由于您大部分已禁用手動縮放,現(xiàn)在幾乎不可能取消縮放。確保輸入字體大小> = 16px。
如果您嘗試在本機(jī)應(yīng)用程序中的WKWebView中解決此問題,上面給出的解決方案是可行的,但這是一個更好的解決方案:正如其他答案中所提到的,在iOS 10 beta 6中,Apple現(xiàn)在提供了一個標(biāo)志來表示元標(biāo)記。
我用更簡單的'touch event.scale on touchmove'方法取代了舊的'touch touch on touchstart'方法,禁用了雙指縮放。應(yīng)該對每個人都更可靠。

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個贊
這是iOS 10中的新功能。
從iOS 10 beta 1發(fā)行說明:
為了提高Safari網(wǎng)站的可訪問性,即使網(wǎng)站設(shè)置
user-scalable=no
在視口中,用戶現(xiàn)在也可以進(jìn)行縮放。
我希望我們很快就會看到JS插件以某種方式禁用它。

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個贊
我已經(jīng)能夠使用touch-action
單個元素上的css屬性來解決這個問題。嘗試設(shè)置touch-action: manipulation;
常用的元素,如鏈接或按鈕。
- 3 回答
- 0 關(guān)注
- 827 瀏覽
添加回答
舉報