首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用Element.animate()的Javascript事件

问不使用Element.animate()的Javascript事件
EN

Stack Overflow用户
提问于 2021-08-15 20:43:50
回答 1查看 315关注 0票数 1

我试图使用Javascript中的Element.animate()方法向我的网站添加动画,但意识到动画事件不会在动画运行时触发。

这是我的代码:

代码语言:javascript
复制
window.onload = function () {
  let list = document.querySelector(".list");
  let btn = document.querySelector(".btn");

  // animation events
  list.addEventListener('animationstart', () => {
    console.log('start')
  });

  list.addEventListener('animationend', () => {
    console.log('end');
  });


  btn.onclick = () => {
    list.animate([
      // keyframes
      { transform: 'translateY(0px)' },
      { transform: 'translateY(-24px)' }
    ], {
      // timing options
      duration: 1000,
      fill: "forwards"
    });
  }

}

在上面的代码中,动画会运行,但是动画事件不会被触发。有人能解释一下为什么这不管用吗?或者告诉我怎么解决它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-16 00:15:37

您没有使用CSS动画(由css类触发)。只有在使用CSS定义的动画或-transition时,动画启动/结束(或过渡开始/结束)事件才会被触发。

看看HTMLElement: animationstart event上的示例。

您可以直接访问Animation-instance,而不是开始/结束事件:

代码语言:javascript
复制
btn.onclick = () => {
  // animation started
  let animation = list.animate(...);
  animation.onfinish = () => {
    // animation ended
  };
};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68795208

复制
相关文章

相似问题

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