在Firefox的边框上使用动画时遇到问题(至少)

Posted

技术标签:

【中文标题】在Firefox的边框上使用动画时遇到问题(至少)【英文标题】:Trouble using animation on border on firefox (at least) 【发布时间】:2018-03-24 08:08:15 【问题描述】:

我目前无法在 Firefox 中使用从无到 50 像素的边框动画。 Chrome 很好,但 Firefox 不是,我想同样的问题也会出现在 Opera 中。

这里有一个小小提琴来告诉你问题(尝试 Chrome,然后是 FF):https://jsfiddle.net/Bonlo/kL5g0qdx/

@keyframes fadeBorder 
    from  border: 0 solid rgba(0,0,0,0);
    to  border: 30px solid black;

.main-wrapper 
  width: 400px;
  height:400px;
  background-color: white;
  animation-name: fadeBorder;
  animation-duration: 1.5s;
  animation-delay: 1s;
  animation-fill-mode: forwards;

我认为问题来自边界:无;价值,但我不知道如何实现这一点......

编辑:

已解决!

问题是 Firefox 需要一个初始的边框定义,至少是:

border: 0 solid;

fiddle

【问题讨论】:

你看过这篇文章吗? ***.com/questions/21143893/… 我试过 @Calaris 它也不能使用前缀。 @Bonlo Firefox 中的动画边框可能存在问题。我在 Firefox 中查看了 w3schools 中的示例。它们工作不正常。 @Calaris 不,我没有,但现在完成了;我试过了,终于找到了诀窍! FF 似乎需要一个初始边界定义,并且最小值似乎是 0 实心。在 Firefox 56.0.1 上工作。如果有人能说它也在 Opéra 上工作,那就太棒了。 【参考方案1】:

在 Firefox 中动画边框似乎存在一些问题,但可以这样解决:

@keyframes fadeBorder 
    from  border-width: 0; 
    to  border-width: 30px; 

.main-wrapper 
  width: 400px;
  height:400px;
  background-color: white;
  border: 0 solid black; /* <-- added line */
  animation-name: fadeBorder;
  animation-duration: 1.5s;
  animation-delay: 1s;
  animation-fill-mode: forwards;

此外,不要忘记包含具有不同前缀的动画以支持旧浏览器:

@keyframes fadeBorder  ... 
@-webkit-keyframes fadeBorder  ... 
@-moz-keyframes fadeBorder  ... 
@-o-keyframes fadeBorder  ... 
...
animation-name: fadeBorder;
-webkit-animation-name: fadeBorder;
-moz-animation-name: fadeBorder;
-o-webkit-animation-name: fadeBorder;
...

【讨论】:

是的,就是这样!

以上是关于在Firefox的边框上使用动画时遇到问题(至少)的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 动画位置在 Firefox 中固定不准确

Firefox 中的 requestAnimationFrame 闪烁问题

使用 Safari 应用 SVG 剪辑路径时遇到问题

@keyframes 动画在 Firefox 55.03 中不起作用

Css动画触发两次并在Firefox中“闪烁”

Firefox 不在第 2 页及以后打印表格边框