首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Safari中无法重新计算CSS动画的最终关键帧中的视口单位

在Safari中无法重新计算CSS动画的最终关键帧中的视口单位
EN

Stack Overflow用户
提问于 2019-10-11 10:05:53
回答 1查看 131关注 0票数 0

长方体通过关键帧动画(迭代次数: 1,填充状态:向前)从宽度: 10vw加宽到宽度: 20vw (最终关键帧)。动画结束后,该框在Safari中没有响应(在调整窗口大小时)。它可以在Chrome和Firefox中正常工作。

我已经尝试使用-webkit- prefix并拆分动画属性,但没有效果。我被迫在动画结束后使用js来更改CSS类(代码片段之后的代码)。

代码语言:javascript
复制
.box {
  width: 10vw;
  height: 100px;
  background: green;
  animation: widen 2s 1 forwards;
}

@keyframes widen {
  0% {
    width: 10vw;
  }
  100% {
    width: 20vw;
  }
}
代码语言:javascript
复制
<div id="box-id" class="box"></div>

Here是一个使用js变通方法注释掉的代码,动画速记属性被拆分了:它仍然不能像预期的那样工作。下面是js的变通方法,我想摆脱它:

CSS

代码语言:javascript
复制
.box2 {
    width: 20vw;
    height: 100px;
    background: green;
}

JS

代码语言:javascript
复制
document.getElementById("box-id").addEventListener('animationend', (e) => {
  e.target.classList.add("box2");
  e.target.classList.remove("box");
});

我发现了许多与safari和关键帧相关的问题,但我找不到任何关于响应单元的具体内容。我想知道我是否做错了什么,或者是否有已知的修复此行为的方法。提前谢谢你

EN

回答 1

Stack Overflow用户

发布于 2019-10-11 10:37:04

Safari不会通过描述动画的速记方法进行阅读。

您可以尝试:

代码语言:javascript
复制
.box{
     animation-name: widen;
     animation-duration: 2s;
     animation-timing-function: ease;
     animation-delay: 0s;
     animation-iteration-count: 1;
     animation-direction: normal;
     animation-fill-mode: forwards;
     animation-play-state: running;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58333322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档