所以,我有這個帶有關閉 [X] 按鈕的時事通訊注冊彈出視窗。關閉它的代碼如下所示
$(document).on('click touchstart', '.ns-close-popup', this.closeSubscription.bind(this));
close 函式只.fadeOut()在需要關閉的元素上呼叫 jQuery 函式。
但是,這在 iPhone 上的 Safari 中不起作用。它在 Mac Mini 上的 Safari 和 Android 手機上的 Chrome 中運行良好。它在 Windows 上的 Chrome 中也可以正常作業。
所以我最初的想法是問題與觸摸有關,因此添加了 touchstart 事件;我也嘗試過 touchend - 很好,但似乎都沒有成功。由于它在 Mac Mini 和 Windows 上都能正常作業,因此我并不認為代碼沒有被正確觸發。除非與 Mac Mini 相比,iPhone 上發生了一些不同的事情。
我試圖弄清楚是什么可能導致這不適用于 iPhone,但沒有運氣。任何想法或建議將不勝感激,謝謝。
uj5u.com熱心網友回復:
我想出了解決我的問題的方法。
顯然,Apple 在最新版本的 iOS(15.4 版)中對 CSS 屬性進行了特定更改:“backface-visibility: hidden”。因此,據我所知,他們禁用了它的 -webkit- 版本。
這一特定變化對 iPhone 如何處理隱藏背面元素的觸摸事件產生了影響。簡而言之,隱藏背面的元素無法像問題中提到的那樣對 touchstart(/end) 事件做出反應,因此它基本上變得不可觸摸。發送到 Browserstack 的祈禱,否則我將永遠無法弄清楚這一點。在 Browserstack 上,我發現它是專門針對 iOS 15.4 的,在 iOS 15.3 及之前的版本上一切正常。幸運的是,devtools 顯示背面“不受支持”(下面有一條黃線),這導致我嘗試注釋掉該 css 值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/481923.html
下一篇:如何使用單個變數設定復選框的值
