【问题标题】:Safari hiding elements upon user interactionSafari 在用户交互时隐藏元素
【发布时间】:2021-07-12 18:41:36
【问题描述】:

我从来没有遇到过这个问题,所以我完全更新了我的 mac + Safari(macOS Big Sur 11.2.3,Safari 14.0.3)。问题是我在我的页面上使用的任何 js 交互都只在 Safari 中被窃听(在 FF 和 Chrome 中完美运行)。您可以在this snippet 中看到我使用的动画类型(逐渐隐藏 + 通过最大高度显示元素 + 元素点击不透明度)。

问题是 Safari 对这些行为非常奇怪。有时,被点击的元素也会消失;动画重置时消失的元素无法重新出现;有时未点击的元素之一会在悬停时消失;等等。;真的很奇怪的事情。所有这一切都没有报告控制台/js错误,并且在FF和Chrome中一切都非常顺利。

在互联网上,我发现了无数关于 Safari 中类似行为的报告,但大多数答案都提到了 js / css 错误。我的脚本甚至是用 ES5 编写的。 我现在检查了大约 100 次,没有出现这些错误。

然后我遇到了this post,这让我尝试更改字体。事实上,当我使用默认浏览器字体作为 Arial 等时,一切在 Safari 中也能正常工作,但这显然不是我的客户想要的。 该网站的字体是 Bank Gothic Light & Bank Gothic Medium,我使用 ttfwoff 文件作为字体源文件,我在样式表中使用 @font-face 将其定义为自定义字体,然后我应用他们通过我的样式表中的font-family。有了这个,动画在 Safari 中具有提到的奇怪行为。只需将相关元素的字体更改为 Arial 即可。

理想情况下,我希望每个动画都能正常工作,同时在所有 FF、Chrome 和 Safari 中坚持使用 Gothic 字体。任何线索在这里做什么/为什么会发生这种情况?

【问题讨论】:

    标签: javascript html css fonts safari


    【解决方案1】:

    通过从另一个来源获取新的字体源文件(ttf 和 woff)解决了问题;似乎有问题(在我的 HTML、CSS、JS、PHP 中没有任何改变,在任何代码中都没有改变!)。我将问题的标题更改为更笼统,因为可能(至少对我来说是这种情况)完全不认为这些 Safari 渲染问题是由于使用的字体造成的...避免使用相同的人问题可能不需要搜索几个小时的回复..

    【讨论】:

      猜你喜欢
      • 2016-06-14
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多