我們在做js動畫的時候,很多時候都需要做回調處理,如在一個動畫完成後觸發一個事件、一個動畫完成後執行另外一個動畫等等,但在使用CSS3動畫時能不能捕獲到運動的狀態做回調處理呢?
CSS3動畫也是可以做回調處理的,這裡分為兩個屬性,一個是transition[w3c文檔],另外一個是animation[w3c文檔]。
1、transition
對於transition,可以監聽transitionend事件,當動畫完成時觸發,可以這樣使用:
XML/HTML Code復制內容到剪貼板
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>css3-transitionend - BeyondWeb</title>
- <style>
- * {margin: 0; padding: 0;}
- .rect {
- width: 100px;
- height: 100px;
- background-color: #f80;
- -webkit-transition: all .5s;
- }
- </style>
- <script>
- window.onload = function () {
- var _rect = document.querySelector('.rect');
- _rect.onclick = function () {
- _rect.style.webkitTransform = 'translateX(300px)';
- }
-
- _rect.addEventListener('webkitTransitionEnd', function () {
- alert('動畫執行完畢!');
- // callback here
- }, false);
- }
- </script>
- </head>
- <body>
- <div class="rect"></div>
- </body>
- </html>
2、animation
對於animation我們可以監聽animationend事件,示例代碼如下:
XML/HTML Code復制內容到剪貼板
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>css3-animationend - BeyondWeb</title>
- <style>
- * {margin: 0; padding: 0;}
- .rect {
- position: relative;
- width: 100px;
- height: 100px;
- background-color: #f80;
- }
-
- @-webkit-keyframes move {
- from {
- -webkit-transform: rotate(0);
- }
- to {
- -webkit-transform: rotate(360deg);
- }
- }
- </style>
- <script>
- window.onload = function () {
- var _rect = document.querySelector('.rect');
- _rect.onclick = function () {
- _rect.style.webkitAnimation = 'move 3s';
- }
-
- _rect.addEventListener('webkitAnimationEnd', function () {
- alert('動畫執行完畢!');
- // callback here
- }, false);
- }
- </script>
- </head>
- <body>
- <div class="rect"></div>
- </body>
- </html>
就是關於CSS3動畫回調處理的一些內容,最近在做H5頁面時用到了,總結一下。
以上這篇淺談CSS3動畫的回調處理就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。
原文地址:http://www.cnblogs.com/androidshouce/archive/2016/07/21/5690438.html