Web 开发:弹出式关闭按钮在 iPhone 上的 Safari 中不起作用

Web Development: Popup close button not working in Safari on iPhone

所以,我有这个带有关闭 [X] 按钮的时事通讯注册弹出窗口 window。 关闭它的代码如下所示

$(document).on('click touchstart', '.ns-close-popup', this.closeSubscription.bind(this));

关闭函数只在需要关闭的元素上调用jQuery函数.fadeOut()

但是,这在 iPhone 上的 Safari 中不起作用。 它在 Mac Mini 上的 Safari 中工作正常,在 Android phone 上的 Chrome 中也工作正常。它在 Windows 上的 Chrome 中也能正常工作。

所以我最初的想法是问题与触摸有关,所以添加了touchstart事件;我也尝试过 touchend - 很好的衡量标准,但似乎都没有成功。由于它在 Mac Mini 和 Windows 上运行良好,因此我认为代码没有被正确触发。除非 iPhone 与 Mac Mini 相比有什么不同。

我试图弄清楚是什么原因导致它不能专门用于 iPhone,但运气不好。任何想法或建议将不胜感激,谢谢。

我找到了解决问题的方法。

显然 Apple 在最新版本的 iOS(版本 15.4)中对 CSS 属性进行了特定更改:“backface-visibility:隐藏”。因此,据我所知,他们禁用了它的 -webkit- 版本。

此特定更改对 iPhone 如何处理背面隐藏的元素的触摸事件有所帮助。简而言之,隐藏其背面的元素无法像问题中提到的那样对 touchstart(/end) 事件做出反应,因此它基本上变得不可触摸。 Prayerblessings 发送到 Browserstack 否则我永远无法弄清楚这一点。在 Browserstack 上,我能够弄清楚它是专门针对 iOS 15.4 的,在 iOS 15.3 及之前的版本上一切正常。幸运的是,devtools 显示背面是 'unsupported'(下面有一条黄线),这让我尝试注释掉 css 值。