這個step、progress有什么作用,怎么用的?arguments中的數組的值是從哪里傳遞過來的?動畫step動畫的顯示效果為什么會從100減到50,是怎么實現的?第二按鈕的效果為什么顯示兩行,最終進度為什么是1?
$("#exec").click(function() {
??????? var v = $("#animation").val();
??????? var $aaron = $("#aaron");
??????? if (v == "1") {
??????????? //觀察每一次動畫的改變
??????????? $aaron.animate({
??????????????? height: '50'
??????????? }, {
??????????????? duration :2000,
??????????????? //每一個動畫都會調用
??????????????? step: function(now, fx) {
?????????????????? $aaron.text('高度的改變值:'+now)
??????????????? }
??????????? })
??????? } else if (v == "2") {
??????????? //觀察每一次進度的變化
??????????? $aaron.animate({
??????????????? height: '50'
??????????? }, {
??????????????? duration :2000,
??????????????? //每一步動畫完成后調用的一個函數,
??????????????? //無論動畫屬性有多少,每個動畫元素都執行單獨的函數
??????????????? progress: function(now, fx) {
?????????????????? $aaron.text('進度:'+arguments[1])
??????????????????? // var data = fx.elem.id + ' ' + fx.prop + ': ' + now;
??????????????????? // alert(data)
??????????????? }
??????????? })
??????? }
??? });
2017-06-22
感謝!
2016-11-21
1、.animate(properties,options)中包含兩個參數,options參數包括幾種,其中step:規定每個動畫的每一步完成之后要執行的函數;progress:每一次動畫調用的時候會執行這個回調,就是一個進度的概念。
2、arguments中數組值代表函數第幾個參數。這里arguments[1]代表第二個參數,則是代表fx。
3、這個程序沒有提供完整,在程序上面應該會定義原先的塊級高度是100,動畫中目標高度是50,所以執行動畫時從100減到50。
4、顯示為1代表動畫進度完成到百分百。效果為兩行不知道是什么意思,看定義的樣式。