gpt4 book ai didi

javascript - 动画持续时间在 Safari 中表现不正常

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:02 28 4
gpt4 key购买 nike

我们正在做一个简单的元素,我们在其中使用 CSS 动画。我们正在尝试使用 JavaScript 更改动画持续时间。更改动画持续时间适用于除 Safari 和 iOS 之外的所有浏览器。

我们正在使用此代码来更改动画持续时间。

document.getElementById("circle").style.animationDuration = data.pulse+"ms"
document.getElementById("circle").style.webkitAnimationDuration = data.pulse+"ms"

这是CSS:

@keyframes pulse {       
0% {transform: scale(0); opacity: 0;}
30% {opacity: 1;}
100% {opacity: 0; transform: scale(0.8);}
}

@-webkit-keyframes pulse {
0% {-webkit-transform: scale(0); opacity: 0;}
30% {opacity: 1;}
100% {opacity: 0; -webkit-transform: scale(0.8);}
}

@-moz-keyframes pulse {
0% {-moz-transform: scale(0); opacity: 0;}
30% {opacity: 1;}
100% {opacity: 0; -moz-transform: scale(0.8);}
}

在 safari 中,它运行一次,之后对象以其原始比例保持静止。

我们尝试了几种不同的方式来定义 webkitAnimationDuration; 例如 ["-webkit-animation-duration"]

非常感谢您的帮助!

最佳答案

我也遇到过这个问题,通过强制 Safari 在更改动画持续时间后重新渲染元素来解决。

var circle = document.getElementById("circle");
circle.style.animationDuration = data.pulse+"ms";
circle.style.display = "none";
setTimeout(() => circle.style.display = "block", 0);

通过短暂隐藏然后显示元素,Safari 将使用新的动画持续时间呈现它。

关于javascript - 动画持续时间在 Safari 中表现不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31047149/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com