javascript - 如何使用 JavaScript 以编程方式为元素设置动画?

标签 javascript html css

我正在查看这段代码 http://codepen.io/optyler/pen/FgDyr如果将鼠标悬停在三 Angular 形元素上,您将看到动画。但是,我不想将其悬停,而是想使用 JavaScript 以编程方式进行。这是我到目前为止所做的:

document.querySelector('.triangle').classList.add('animateSpeak');

并添加了一个新的CSS类

.animateSpeak {
    animation: vibrate .5s infinite ease-out;
}

正如您在此处看到的那样,动画正在运行 http://imgur.com/a/V9JyO左边的部分只是动画。我在这里做错了什么吗?

最佳答案

由于您使用的是 CSS 3 动画,您可能需要某种 active 类。

只需将 :hover 选择器(第 54 行)更改为 .active 即可。即:

.triangle.active,
.triangle.active:before,
.triangle.active:after {
  animation: vibrate .5s infinite ease-out;
}

您可以通过添加 .active 类以编程方式启动动画或停止它删除类。

要回答你的第二个问题,看起来 :before:after 元素也需要动画。

关于javascript - 如何使用 JavaScript 以编程方式为元素设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43383371/

相关文章:

html - 为什么我的照片下方的段落框有一个贯穿整个页面宽度的不可见链接?

html - 如何对齐这些 HREF 按钮?

html - Bootstrap 左对齐图像影响文本布局

html - 垂直居中文本,在 inline-block 内

javascript - 我正在使用 jQuery 在传单 map 中插入地标。但是当我尝试通过单击链接插入地标时,出现错误

javascript - 单击文本字段时不出现日期选择器

javascript - 使用 onclick() 将按钮值发送到 Jquery AJAX

javascript - 用于播放连续 mp3 文件的 HTML 按钮

html - 带有 CSS 的聚光灯元素

javascript - 问题: The whole page loading instead just the div with .加载()