欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

在Safari iOS中停用雙擊放大鏡

林雅南1年前8瀏覽0評論

我正在制作一個網絡瀏覽器游戲,我發現在Safari iOS中雙擊會彈出這個放大鏡功能:

Bubble

我想禁用它,但找不到方法。我試過user-select: none(其實是-WebKit-user-select:Safari的none)、touch-action: none和各種各樣的event.preventDefault()。

有一些主題涉及如何長按隱藏它(這里是-webkit-user-select: none works),還有一些主題涉及如何禁用雙擊縮放,但我還沒有找到一種方法來隱藏這個雙擊手勢的放大鏡。

這能做到嗎?

如果你的游戲是嵌入的WkWebView,在你的web視圖配置中有一個屬性可以禁用交互式文本。這將關閉通過放大鏡選擇、雙頂和拖動來放大文本的功能。但是,它也改變了所有文本交互的行為。所以,也許最好謹慎使用。

let config = WKWebViewConfiguration()
let view = WKWebView(frame: .zero, configuration: config)
view.configuration.preferences.isTextInteractionEnabled = false

如果它是一個可通過Mobile Safari訪問的網站,那么您可以通過touchend和touchcancel事件攔截特定元素的事件傳播。但是,這也可能有其他意想不到的影響,基本上是事件不會冒泡到它們的父級進行單擊,或者事件鏈不會完成,就像相同元素的click事件一樣。

const eventParams = { passive: false };
document.body.addEventListener('touchcancel', ignore, eventParams);
document.body.addEventListener('touchend', ignore, eventParams);

function ignore(e) {
  e.preventDefault();
}

我還沒有找到一種只在CSS中禁用它的方法。

我如何為Safari解決這個問題的示例:

main();
canvas.addEventListener("touchend", e => game(e));
canvas.addEventListener("touchstart", e => game(e));
canvas.addEventListener("touchmove", e => game(e));

document.body.addEventListener('touchstart', (e) => e.preventDefault(), { passive: false });

您通常只需添加這行代碼:

document.body.addEventListener('touchstart', (e) => e.preventDefault(), { passive: false });

哦,如果你在函數游戲(e)中添加e.preventDefault()的話(或者其他對你來說)對我不起作用