• <small id='Z9KJ1'></small><noframes id='Z9KJ1'>

        <legend id='Z9KJ1'><style id='Z9KJ1'><dir id='Z9KJ1'><q id='Z9KJ1'></q></dir></style></legend>

      1. <i id='Z9KJ1'><tr id='Z9KJ1'><dt id='Z9KJ1'><q id='Z9KJ1'><span id='Z9KJ1'><b id='Z9KJ1'><form id='Z9KJ1'><ins id='Z9KJ1'></ins><ul id='Z9KJ1'></ul><sub id='Z9KJ1'></sub></form><legend id='Z9KJ1'></legend><bdo id='Z9KJ1'><pre id='Z9KJ1'><center id='Z9KJ1'></center></pre></bdo></b><th id='Z9KJ1'></th></span></q></dt></tr></i><div id='Z9KJ1'><tfoot id='Z9KJ1'></tfoot><dl id='Z9KJ1'><fieldset id='Z9KJ1'></fieldset></dl></div>
        <tfoot id='Z9KJ1'></tfoot>
          <bdo id='Z9KJ1'></bdo><ul id='Z9KJ1'></ul>
      2. JavaScript探测CSS动画是否已经完成的方法

        时间:2023-12-09
        • <bdo id='6Rp91'></bdo><ul id='6Rp91'></ul>
            <tbody id='6Rp91'></tbody>

              <tfoot id='6Rp91'></tfoot>
              <i id='6Rp91'><tr id='6Rp91'><dt id='6Rp91'><q id='6Rp91'><span id='6Rp91'><b id='6Rp91'><form id='6Rp91'><ins id='6Rp91'></ins><ul id='6Rp91'></ul><sub id='6Rp91'></sub></form><legend id='6Rp91'></legend><bdo id='6Rp91'><pre id='6Rp91'><center id='6Rp91'></center></pre></bdo></b><th id='6Rp91'></th></span></q></dt></tr></i><div id='6Rp91'><tfoot id='6Rp91'></tfoot><dl id='6Rp91'><fieldset id='6Rp91'></fieldset></dl></div>

                <small id='6Rp91'></small><noframes id='6Rp91'>

                <legend id='6Rp91'><style id='6Rp91'><dir id='6Rp91'><q id='6Rp91'></q></dir></style></legend>

                  前置知识:

                  在 JavaScript 中,我们可以使用 addEventListener() 方法给元素添加事件监听器,使用 animationstartanimationiterationanimationend 事件来侦测 CSS 动画的开始、循环和结束。

                  方法一:监听 animationend 事件

                  当 CSS 动画结束时,会触发元素的 animationend 事件,我们可以通过给元素添加 animationend 事件监听器来检测动画是否结束:

                  const element = document.querySelector('#animate');
                  element.addEventListener('animationend', function(event) {
                    if(event.animationName === 'fade-out') {
                      console.log('CSS animation has completed!');
                    }
                  });
                  

                  在上面的代码中,我们使用 querySelector() 方法选择了一个 ID 为 animate 的元素,并给它添加了一个 animationend 事件监听器。当此元素的动画结束时,监听器会被触发并打印一条消息到控制台。

                  在监听器函数中,我们可以使用 event.animationName 属性来获取当前动画的名称,然后根据需要进行业务逻辑处理。

                  方法二:使用 getComputedStyle() 方法

                  另一种检测 CSS 动画是否完成的方法是使用 getComputedStyle() 方法获取元素的计算样式。该方法返回一个 CSSStyleDeclaration 对象,包含当前计算样式(由所有设置的样式和默认样式决定)。

                  我们可以通过获取元素的 animationDurationanimationDelay 样式,加上一个 setTimeout 定时器,来判断动画是否已经完成。具体实现如下:

                  const element = document.querySelector('#animate');
                  const style = getComputedStyle(element);
                  const animationDuration = parseFloat(style.animationDuration);
                  const animationDelay = parseFloat(style.animationDelay);
                  const seconds = (animationDuration + animationDelay) * 1000;
                  setTimeout(function() {
                    console.log('CSS animation has completed!');
                  }, seconds);
                  

                  在上面的代码中,我们首先使用 querySelector() 方法选择了一个 ID 为 animate 的元素,然后通过 getComputedStyle() 方法获取到元素的计算样式。接下来,我们获取了元素的 animationDurationanimationDelay 样式,并计算出动画总用时,即 seconds 变量的值。

                  最后,我们使用 setTimeout 定时器在动画用时 seconds 后打印一条消息到控制台,以便我们了解动画是否已经完成。

                  总结:

                  CSS 动画的完成状态可以通过监听 animationend 事件,或者使用 getComputedStyle() 方法加上一个 setTimeout() 定时器来检测。使用这些方法,我们可以精确地判断动画是否已经完成,从而执行相应的业务逻辑。

                  上一篇:才发现的超链接js导致网页中GIF动画停止的解决方法 下一篇:javascript学习笔记(十七) 检测浏览器插件代码

                  相关文章

                  <legend id='Yor9a'><style id='Yor9a'><dir id='Yor9a'><q id='Yor9a'></q></dir></style></legend>
                  <i id='Yor9a'><tr id='Yor9a'><dt id='Yor9a'><q id='Yor9a'><span id='Yor9a'><b id='Yor9a'><form id='Yor9a'><ins id='Yor9a'></ins><ul id='Yor9a'></ul><sub id='Yor9a'></sub></form><legend id='Yor9a'></legend><bdo id='Yor9a'><pre id='Yor9a'><center id='Yor9a'></center></pre></bdo></b><th id='Yor9a'></th></span></q></dt></tr></i><div id='Yor9a'><tfoot id='Yor9a'></tfoot><dl id='Yor9a'><fieldset id='Yor9a'></fieldset></dl></div>

                    <tfoot id='Yor9a'></tfoot>

                      <small id='Yor9a'></small><noframes id='Yor9a'>

                        <bdo id='Yor9a'></bdo><ul id='Yor9a'></ul>