zoukankan      html  css  js  c++  java
  • jquery实现css3动画

      jquery animate改变元素样式时,只支持数字值的变化,比如width,height等,但是css3属性状态值很多都不是数字值,而是字符串和数字混合在一起,比如translate(), rotate()等等,如果要用animate使其支持css3变化,需要用到一个step参数,下面附上小demo:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/jquery-1.12.0.js"></script>
        <style>
            .demo{
                100px;
                height:100px;
                border:1px solid red;
            }
        </style>
    </head>
    <body>
    <button>sss</button>
        <div class="demo"></div>
    
        <script>
            var $elem,applyEffect;
            $elem=$(".demo");
            applyEffect=function($e,v){
                $e.css({
                    '-webkit-transform': 'translate3d(0px, ' +String(v)+ 'px, 0px)'
                    , '-moz-transform': 'translate3d(0px, ' +String(v)+ 'px, 0px)'
                    , 'transform': 'translate3d(0px, ' +String(v)+ 'px, 0px)'
                });
            };
            applyEffect($elem, 100);
            $("button").click(function(){
                $(".demo").animate({
                    foo:100
                },{
                    step:function(now,fx){
                        //console.log(now); //当前正在改变的属性的实时值
                       //console.log(fx); //jquery默认动画队列的名字
                        //console.log(fx.elem); //执行动画的元素
                        //console.log(fx.prop);  //执行动画的属性    aa
    //                    console.log(fx.now);  //正在改变属性的当前值
    //                    console.log(fx.end);  //动画结束之   360
                        //console.log(fx.unit);  //改变的属性的单位  px
                        //$(".demo").css({"transform":"rotate("+now+"deg)"});
                        applyEffect($elem, 100-now);
                    },
                    duration:1000
                });
            });
        </script>
    </body>
    </html>
    

      现在animate第一个参数里,插入一个字段,给到设定好的目标值,然后在step里用css来通过前面给的字段,来动态模拟动画,通过这样间接的方式实现了animate对css3动画的支持.

  • 相关阅读:
    九、linux-msyql下的mysql主从复制深度实战
    八、linux-mysql的mysql主从复制原理和实战
    七、linux-mysql下mysql增量备份与恢复
    六、linux-mysql的mysql字符集问题
    入坑django2
    python根据已有数据库生成model.py
    docker 常用命令记录
    gitlab自带的Nginx与原Nginx冲突的解决方案
    linux下PHP安装redis扩展
    jenkins自动部署代码到多台服务器
  • 原文地址:https://www.cnblogs.com/vvic/p/5896141.html
Copyright © 2011-2022 走看看