zoukankan      html  css  js  c++  java
  • 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页面时用到了,总结一下。

  • 相关阅读:
    PHP 设计模式系列 —— 资源库模式(Repository)
    在 Laravel 5 中使用 Repository 模式实现业务逻辑和数据访问的分离
    laravel集合
    2013项目总结
    项目总结
    到底创建了几个String对象?
    String s=new String("abc")创建了几个对象?
    局部刷新
    robot framework 在pycharm中语法无法高亮显示的,显示绿色解决办法(Robot Framework with PyCharm)
    UNIX环境高级编程——进程管理和通信(总结)
  • 原文地址:https://www.cnblogs.com/ranzige/p/4154868.html
Copyright © 2011-2022 走看看