几个参数不明白

来源:5-2 jQuery中动画animate(下)

wangao4321

2016-07-16 17:56

老师能不能把,参数解释下,真的不懂,这个arguments【1】是什么意思。

step中函数传递参数是怎么传的,例子中,只有height一项,如果我设置了多项,是怎么传递,这个now参数?

progress就更加不懂了。

写回答 关注

3回答

  • 你看起来似乎很美味
    2016-10-26 22:30:44
    	$( "li" ).animate({
    		  opacity: .5,
    		  height: "50%"
    		}, {
    		  step: function( now, fx ) {
    			var data = fx.elem.id + " " + fx.prop + ": " + now;
    			$( "body" ).append( "<div>" + data + "</div>" );
    		  }
    	});

    结果如下:

    opacity: 1

    height: 20

    opacity: 0.9413708033732721

    height: 23.51775179760368

    opacity: 0.900105056331471

    height: 25.99369662011174

    opacity: 0.854664934384357

    height: 28.72010393693858

    opacity: 0.7813333083910761

    height: 33.12000149653544

    opacity: 0.7070177249301477

    height: 37.57893650419114

    opacity: 0.6471214103487228

    height: 41.17271537907663

    opacity: 0.6030536869268818

    height: 43.8167787843871

    opacity: 0.5500788353782273

    height: 46.995269877306356

    opacity: 0.5213482100503466

    height: 48.7191073969792

    opacity: 0.5044281873178278

    height: 49.73430876093033

    opacity: 0.5

    height: 50


    发现是两个参数的变化过程的值不停的轮流弹出

  • 西风潇潇
    2016-07-28 22:35:56

    查看官方jQuery API文档:http://api.jquery.com/animate/

  • _heyshadow
    2016-07-16 18:54:02

    arguments是js中的一个内置对象,虽然我猜你应该知道,不过还是找了个详解,见js arguments

    至于这个参数怎么传的。now好像是当前改变的值的一个合集,每一项都是number类型,alert出来的话就是不停弹出来你正改变的值。有几个值弹出几次,按顺序弹出来_(:зゝ∠)_。

    比如说如果我设置height:50,又设置width:50,动画运行前弹一次当前高,弹一次当前宽。然后运行结束再弹一次当前高,弹一次当前宽。

    当然,前面都是自己的折腾。

    下面是我找到的一个参数的讲解,可不可靠还未知,但可以作为参考

    <script>
    $(".demo").animate({
    first:2,
    second:10
    }, {
    step:function(n,fx){
    // 动画元素的每个动画属性每一次动画效果的执行都将调用的函数。第1个参数是当前动画正在改变的属性的实时值(每1次动画过程中,属性值的实时反馈呈现);第2个参数为修改Tween 对象提供了一个机会来改变animate第1个参数中设置的属性在动画结束时的值。
    // fx: jQuery.fx 原型对象的一个引用,其中包含了多项属性,比如
    // 执行动画的元素:elem;
    // 动画正在改变的属性:prop;
    // 正在改变属性的当前值:now;
    // 正在改变属性的结束值:end;
    // 正在改变属性的单位:unit;等
    
    // 可在这里改变animate第1个参数中设置的属性second在动画结束时的值
    if(fx.prop=="second"){fx.end=5}
    console.log(fx.prop+": "+n);
    },
    duration:2000
    })
    </script>


    _heysh... 回复wangao...

    噗 不管多冷门,了解一下总是没问题的

    2016-07-18 18:57:40

    共 2 条回复 >

jQuery基础(四)—动画篇

jQuery基础教程动画篇,讲解jQuery基础开启动画修炼

85058 学习 · 262 问题

查看课程

相似问题