<!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说明数组里面只有三个值,这三值分别是什么?懵逼了,求大神解答!拜谢!!!
noww接收的是每次动画时height的值,fxx是指每个动画的每一步完成之后要执行的函数. step自动执行的这个函数.
arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Array,但实际上又不是一个Array实例.arguments对象的长度是由实参个数而不是形参个数决定的。形参是函数内部重新开辟内存空间存储的变量,但是其与arguments对象内存空间并不重叠.
也就是说此时的arguments[1]代表的是progress的进度,而它是从0-1的,0代表开始,1代表结束
keyi !
加油,共同努力进步