请问:1问:noww和fxx接收的是哪两个参数,没有定义fxx这个函数啊。是怎么调用的?

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

慕数据5775487

2017-01-05 00:30

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title></title>
    <style>
    p {
        color: red;
    }
    
    div {
        width: 200px;
        height: 100px;
        background-color: yellow;
        color: red;
    }
    a{
        display: block
    }
    </style>
    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>

<body>
    <h2>animate(下)</h2>
    <p>慕课网,专注分享</p>
    <div id="aaron">内部动画</div>
    点击观察动画效果:
    <select id="animation">
        <option value="1">动画step动画</option>
        <option value="2">动画progress回调</option>
    </select>
    <a></a>
    <input id="exec" type="button" value="执行动画">
    <script type="text/javascript">
    $("#exec").click(function() {
        var v = $("#animation").val();
        var $aaron = $("#aaron");
        if (v == "1") {
            //观察每一次动画的改变
            $aaron.animate({
                height: '50'
            }, {
                duration :2000,
                //每一个动画都会调用
                step: function(noww, fxx) {  
                   $aaron.text('高度的改变值:'+noww) 
                }
            })
        } else if (v == "2") {
            //观察每一次进度的变化
            $aaron.animate({
                height: '50'
            }, {
                duration :20000,
                //每一步动画完成后调用的一个函数,
                //无论动画属性有多少,每个动画元素都执行单独的函数 
                progress: function(now, fx) {
                   $aaron.text('进度:'+arguments[2])
                    // var data = fx.elem.id + ' ' + fx.prop + ': ' + now; 
                    // alert(data)
                }
            })
        } 
    });
    </script>
</body>

</html>

请问:1问:noww和fxx接收的是哪两个参数,没有定义fxx这个函数啊。是怎么调用的?

2问:arguments[1]的值是怎么来的?改成arguments[2]显示的数值又什么值?改成arguments[3]后显示undefined说明数组里面只有三个值,这三值分别是什么?懵逼了,求大神解答!拜谢!!!

写回答 关注

3回答

  • 水墨流沙
    2017-01-05 17:33:28
    已采纳
    1. noww接收的是每次动画时height的值,fxx是指每个动画的每一步完成之后要执行的函数. step自动执行的这个函数.

    2.  arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Array,但实际上又不是一个Array实例.arguments对象的长度是由实参个数而不是形参个数决定的。形参是函数内部重新开辟内存空间存储的变量,但是其与arguments对象内存空间并不重叠.

      也就是说此时的arguments[1]代表的是progress的进度,而它是从0-1的,0代表开始,1代表结束

    Bravur...

    为什么now是指height 是本身就默认吗?

    2018-08-03 18:06:22

    共 3 条回复 >

  • 懒惰的猫想吃鱼
    2017-06-22 10:50:20

    keyi !

  • 水墨流沙
    2017-01-06 17:17:29

    加油,共同努力进步

    慕数据577...

    加油!!谢谢你!

    2017-01-06 18:48:02

    共 1 条回复 >

jQuery基础(四)—动画篇

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

85049 学习 · 262 问题

查看课程

相似问题