• CSS3动画的回调处理


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

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

    1、transition

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

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>css3-transitionend - BeyondWeb</title>
        <style>
            * {margin: 0; padding: 0;}
            .rect {
                 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事件,示例代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>css3-animationend - BeyondWeb</title>
        <style>
            * {margin: 0; padding: 0;}
            .rect {
                position: relative;
                 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页面时用到了,总结一下。

  • 相关阅读:
    Python之内置函数再总结
    内置函数
    函数递归
    字符编码之文件处理
    文件处理
    python1数据链接总结
    知识点练习day9
    第一周作业
    python1
    网络基础预习
  • 原文地址:https://www.cnblogs.com/ranzige/p/4154868.html
Copyright © 2020-2023  润新知