jquery animate step 实现 transform css3方法

1 篇文章 0 订阅
1 篇文章 0 订阅

利用jquery animate step 实现 translate(), rotate(), scale(), skew(),等开发方法

animate()方法有个step参数规定动画执行的每一步都要执行step这个回调函数。

我们可以用使用一个不影响元素效果显著的css值来触发animate()开发方法 ,然后在step回调函数中修改我们想要修改的值,这样就可以间接地实现动画了

实例:

<style type="text/css">
    .demo{width: 100px;
        height: 100px;
        border: 1px solid red}
</style>
<body>
    <div class="demo"></div>
    <button>sss</button>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
<script type="text/javascript">
    $("button").click(function(){
        $(".demo").animate({
            aa:"360" //目的就是取一个属性值360
        },{
            step:function(now,fx){
                //console.log(now);
                $(".demo").css({"transform":"rotate("+now+"deg)"})
            },
            duration:1000
        });
    })
</script>
<script>
    $(".demo").animate({
        aa:2,
        bb:10
    }, {
        step:function(now,fx){
        //参数step:规定每个动画的每一步完成之后要执行的函数
            // now:是当前动画正在改变的属性的实时值;
            // fx: jQuery.fx 原型对象的一个引用,其中包含了多项属性,比如
            // 执行动画的元素:elem;
            // 动画正在改变的属性:prop;
            // 正在改变属性的当前值:now;
            // 正在改变属性的结束值:end;
            // 正在改变属性的单位:unit;等

            // 可在这里改变animate第1个参数中设置的属性bb在动画结束时的值
            if(fx.prop=="bb"){fx.end=5}
            //console.log(fx.prop+": "+n);
        },
        duration:1000
    })
</script>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值