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

标签 javascript css animation safari css-animations

我们正在做一个简单的元素,我们在其中使用 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/

相关文章:

javascript - Codeigniter 文件表单上传

javascript - jquery如何在使用json更改attr src时淡出和淡入图像

css - 更改 css Bootstrap 菜单事件链接颜色

html - 元素在网络服务器上消失

C# WPF gif 黑色背景

Android View 以编程方式淡入

javascript - 我正在将项目插入数组,但脚本变得无响应?

javascript - 如何有条件地呈现逗号和句点?

html - 当导出到 HTML 并在不同的服务器上托管时,一些 weebly 功能不起作用

Android:在 android 中使用 XML 进行动画翻转动画