【问题标题】:appending css3 @keyframes won't work in safari附加 css3 @keyframes 在 safari 中不起作用
【发布时间】:2015-07-01 15:38:45
【问题描述】:

这很难解释,如果我有点啰嗦,请原谅我。

一旦我可以确定将包含动画的元素的宽度,我将使用 js/jquery 创建一个样式以附加到文档标题。例如,我有一些云在天空中滑动,所以我需要知道视口有多宽,以便它们用动画覆盖整个屏幕。一旦我定义了样式变量(样式),我将像这样附加 head 元素:

$('html > head').append(style);

这在 chrome 和 firefox 中完美运行,但 safari 直接拒绝工作。我尝试了一种稍微不同的方式:

$('head').append('<style type="text/css">*@keyframe attributes here*</style>');

再次,在 chrome 和 firefox 中运行良好,但 safari 看不到它。在你问之前,是的,我使用的是 -webkit- 供应商前缀,是的,它列在非供应商特定的 @keyframes 属性之前:)

然后我尝试了 jquery 关键帧插件,结果完全相同。它在 chrome 和 firefox 中完美运行,但不是 safari。但仅限于关键帧。

我已经搜索并搜索过其他任何有此问题的人,但我只能找到无数关于确保以正确的顺序使用正确的供应商前缀的线程(我已经这样做了)。

如果我将关键帧硬编码到 css 文件中,它们可以正常工作,但显然这对我没有好处,因为我无法为动画指定适当的宽度。由于循环动画和偏移(这很复杂),我需要处理宽度(不是 %)。

编辑 这是我附加到标题的样式变量的示例。也许 safari 对格式有特殊要求?

<style>
@-webkit-keyframes charmove { from { -webkit-transform : translateX(0px); } to { -webkit-transform : translateX('+winWidth+'px); }}
@keyframes charmove { from { transform : translateX(0px); } to { transform : translateX('+winWidth+'px); }}
</style>

我也试过了,也没有在转换元素上添加 -webkit- 。结果一样。

【问题讨论】:

  • 是的。我也这样做了。两种方式都试过了。
  • 我认为您没有使用 razor 视图引擎,或者遇到任何控制台错误?
  • 控制台中没有错误。它只是忽略了附加的规则。
  • 我能想到的唯一其他可能性是委托问题。但要这么说,你必须展示你的标记来看看它是如何定义的。
  • 我想,但它只会影响 @keyframes 而不会影响其他 css 属性似乎很奇怪。它在 Firefox 和 chrome 中也能正常工作。我知道这并不总是意味着它是 100% 正确的,但在我看来,野生动物园在这里可能有一个错误......

标签: jquery css


【解决方案1】:

好吧,我想通了(还有一些白发!)

事实证明,当您在要制作动画的元素上定义简写动画属性时,safari 不会读取它们。

所以而不是:

-webkit-animation: 5s *name-of-anim* infinite linear;

你必须做的:

-webkit-animation-name: charmove;
-webkit-animation-duration: 20s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;

我之前曾尝试过(在这场噩梦的早期),但没有奏效。我想我在测试它时一定做错了什么,因为它现在可以工作了。

希望这篇文章可以帮助其他可能遇到这个问题的人,因为谷歌基本上没有帮助。

:)

【讨论】:

  • 我还应该添加一些我刚刚发现的东西。我已经包含了 jquery.keyframes 插件来测试它是否可以工作(当时它没有)。奇怪的是,我没有使用该 js 文件中的任何内容,但除非我将其包含在页面上,否则动画在 safari 中不起作用。不知道为什么(甚至怎么可能),但这就是我在这里看到的。
猜你喜欢
  • 2019-12-18
  • 1970-01-01
  • 2021-06-15
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多