javascript - 为什么我不能重用 CSS 关键帧动画?

标签 javascript css keyframe

我想在每次提交时都有一个 CSS 关键帧动画,但目前它只在第一次有效。你能看出我做错了什么吗?

CSS:

@keyframes enlarge {
0%   {-webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1);}
100% {-webkit-transform: scale(1.5); -ms-transform: scale(1.5); transform: scale(1.5);}
}

.enlarge {
animation-name: enlarge;
animation-duration: 2s;

JS:

var enlarge = function(response) {

    document.querySelector("#messageContainer").classList.add("enlarge");

    var reset = setTimeout(function() {

        document.querySelector("#messageContainer").classList.remove("enlarge");

    }, 2000);
};

在我写这篇文章的时候,我有一半希望能找到解决方案,但事实并非如此。

最佳答案

根据您的描述,您的代码似乎按预期工作...尝试单击下面的“运行代码片段”:

var enlarge = function(response) {
    document.querySelector("#container").classList.remove("hidden");
    document.querySelector("#example").classList.add("enlarge");
    var reset = setTimeout(function() {
        document.querySelector("#example").classList.remove("enlarge");
        document.querySelector("#container").classList.add("hidden");
    }, 2000);
};
#example { 
  background: red;
  width: 150px;
}

@keyframes enlarge {
0%   {-webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1);}
100% {-webkit-transform: scale(1.5); -ms-transform: scale(1.5); transform: scale(1.5);}
}

.hidden { display: none; }

.enlarge {
    animation-name: enlarge;
    animation-duration: 2s;
}
<div id="container" class="hidden">
    <div id="example">My example text</div>
</div>
<button onclick="enlarge()">Submit</button>

您确定您的放大功能在每次点击提交按钮时都在运行吗?

根据您的 enlarge() 函数采用“响应”参数这一事实来判断,我假设您在 AJAX 请求的响应处理程序中使用它——此 AJAX 请求是否返回不成功的错误如果表单已经提交过一次代码?如果这个函数附加到 onSuccess() 方法,那就可以解释为什么它只播放一次动画;请求只会在第一次单击按钮时“成功”。

关于javascript - 为什么我不能重用 CSS 关键帧动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34214231/

相关文章:

javascript - 单击“表单提交”,其中属性等于特定值

javascript - 使用 css 或 jquery 的动态 iframe 高度

javascript - 如何在 CSS 和 HTML 中用线绘制相连的圆

html - 根据表格大小调整图像大小

javascript - 通过 animationName 检测触发了哪个 AnimationEnd

css - @-webkit-keyframes 与其他人发生冲突

javascript - 获取 jquery 数组中元素的文本

javascript - linq,js GroupBy 坐标(lat, lng)

css - Asp.net gridview 覆盖 Bootstrap 表样式

ffmpeg - 使用 FFMPEG 提取第一个非黑色关键帧