zoukankan      html  css  js  c++  java
  • 延时动画四部曲

    onCreate: function() {
            this.setView("leftMenu.html", {
                items : []
            });
            me.threeTrigger = iAuto.Util.bind(me,me.threeTrigger);
        },
    ... ...
    releaseBtn : function(event){
            var me = this;
            setTimeout(me.threeTrigger(event),700);
        },
        threeTrigger : function(event){
            var me = this,$el = me.$element;
            return function()  
            {  
                me.returnTrigger(event);  
            }
        },
        returnTrigger : function(event){ 
            var me = this,$el = me.$element;
    
            var klass = $(event.target).data("klass");   
            $el.find("."+klass).removeClass("pressed");
            $el.trigger(klass);
        },

    用setTimeout做延时会丢失上下文,所以首先绑了this,

    然后这家伙还不能带参数,那么需要再写个函数,该函数返回一个不带参数的函数,详细转自

    http://boleyn.iteye.com/blog/1144015

    参看

    http://blog.csdn.net/huanglan513/article/details/5669912

     动画方面我采用的时给after加上帧动画:

    .left_menu .bigSize:after {
      content: "";
      position: absolute;
      top: 8px;
      left: 40px;
       45px;
      height: 45px;
      display: block;
      z-index: -1;
      border-radius: 45px;
      opacity: 0;
      background-color: #373737;
    }
    
    .left_menu .bigSize:hover:after {
      -webkit-animation: boom 0.7s ease;
    }
    
    @-webkit-keyframes boom {
      0% {
        opacity: 0;
      }
    
      5% {
        -webkit-transform: scale(1.2);
        opacity: 0.5;
      }
    
      70% {
        -webkit-transform: scale(1.6);
        opacity: 0.8;
      }
    
      100% {
        -webkit-transform: scale(2.4);
        opacity: 1;
         353px;
        height: 66px;
        display: block;
      }
    }
    drop

    动画的质感需要物理基础,有空深入研究。

    另外,为了防止连续点击产生动画之后setTimeout不能对应动画完成的事件,可以采用监听css3动画完成的事件,再执行要做的事。

    <!DOCTYPE HTML> 
    <html> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="author" content="@my_programmer"> 
    <title>webkitAnimationEnd</title> 
    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/> 
    <meta name="apple-mobile-web-app-capable" content="yes" /> 
    <meta name="format-detection" content="telephone=no"/> 
    <style type="text/css"> 
    #div{ 
    200px; 
    height:200px; 
    background:#f60; 
    margin:100px auto; 
    -webkit-transition: all ease 1s; 
    } 
    .change{ 
    -webkit-animation: transform 1s 2 ease; 
    } 
    @-webkit-keyframes transform { 
    10% { -webkit-transform: scale(1)} 
    20% { -webkit-transform: scale(2)} 
    50%{ -webkit-transform: scale(0.5)} 
    100% { -webkit-transform: scale(1)} 
    } 
    </style> 
    </head> 
    <body> 
    <div id="div"></div> 
    <script type="text/javascript"> 
    var tt = document.querySelector('#div'); 
    tt.addEventListener("click", function(){ 
    this.className = 'change'; 
    }, false); 
    tt.addEventListener("webkitAnimationEnd", function(){ //动画结束时事件 
    this.className = this.className.replace('change', ' '); 
    console.log(2); 
    }, false); 
    </script> 
    </body> 
    </html> 
    webkitAnimationEnd

    对按钮按压效果这类简单动画的回调尤其有效。

  • 相关阅读:
    HDU 5528 Count a * b 欧拉函数
    HDU 5534 Partial Tree 完全背包
    HDU 5536 Chip Factory Trie
    HDU 5510 Bazinga KMP
    HDU 4821 String 字符串哈希
    HDU 4814 Golden Radio Base 模拟
    LA 6538 Dinner Coming Soon DP
    HDU 4781 Assignment For Princess 构造
    LA 7056 Colorful Toy Polya定理
    LA 6540 Fibonacci Tree
  • 原文地址:https://www.cnblogs.com/haimingpro/p/4201406.html
Copyright © 2011-2022 走看看