CSS3动画怎么做回调处理

本篇内容介绍了“CSS3动画怎么做回调处理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我们在做js动画的时候,很多时候都需要做回调处理,如在一个动画完成后触发一个事件、一个动画完成后执行另外一个动画等等,但在使用CSS3动画时能不能捕获到运动的状态做回调处理呢?

CSS3动画也是可以做回调处理的,这里分为两个属性,一个是transition[w3c文档],另外一个是animation[w3c文档]。

1、transition

对于transition,可以监听transitionend事件,当动画完成时触发,可以这样使用:

XML/HTML Code复制内容到剪贴板

  1. <!DOCTYPE html>  

  2. <html lang="en">  

  3. <head>  

  4.     <meta charset="UTF-8">  

  5.     <title>css3-transitionend - BeyondWeb</title>  

  6.     <style>  

  7.         * {margin: 0; padding: 0;}   

  8.         .rect {   

  9.             width: 100px;   

  10.             height: 100px;   

  11.             background-color: #f80;   

  12.             -webkit-transition: all .5s;   

  13.         }   

  14.     </style>  

  15.     <script>  

  16.         window.onload = function () {   

  17.             var _rect = document.querySelector('.rect');   

  18.             _rect.onclick = function () {   

  19.                 _rect.style.webkitTransform = 'translateX(300px)';   

  20.             }   

  21.   

  22.             _rect.addEventListener('webkitTransitionEnd', function () {   

  23.                 alert('动画执行完毕!');   

  24.                 // callback here   

  25.             }, false);   

  26.         }   

  27.     </script>  

  28. </head>  

  29. <body>  

  30.     <div class="rect"></div>  

  31. </body>  

  32. </html>  

2、animation

对于animation我们可以监听animationend事件,示例代码如下:

XML/HTML Code复制内容到剪贴板

  1. <!DOCTYPE html>  

  2. <html lang="en">  

  3. <head>  

  4.     <meta charset="UTF-8">  

  5.     <title>css3-animationend - BeyondWeb</title>  

  6.     <style>  

  7.         * {margin: 0; padding: 0;}   

  8.         .rect {   

  9.             position: relative;   

  10.             width: 100px;   

  11.             height: 100px;   

  12.             background-color: #f80;   

  13.         }   

  14.   

  15.         @-webkit-keyframes move {   

  16.             from {   

  17.                 -webkit-transform: rotate(0);   

  18.             }   

  19.             to {   

  20.                 -webkit-transform: rotate(360deg);   

  21.             }   

  22.         }   

  23.     </style>  

  24.     <script>  

  25.         window.onload = function () {   

  26.             var _rect = document.querySelector('.rect');   

  27.             _rect.onclick = function () {   

  28.                 _rect.style.webkitAnimation = 'move 3s';   

  29.             }   

  30.   

  31.             _rect.addEventListener('webkitAnimationEnd', function () {   

  32.                 alert('动画执行完毕!');   

  33.                 // callback here   

  34.             }, false);   

  35.         }   

  36.     </script>  

  37. </head>  

  38. <body>  

  39.     <div class="rect"></div>  

  40. </body>  

  41. </html>  

“CSS3动画怎么做回调处理”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!