2011-12-09 48 views
2

動畫完成後,有一種方法可以觸發事件嗎? 它是什麼? 我很新的使用YUI庫,我迷路..YUI Anim在事後?

我COSE現在是

var anim = new Y.Anim({ 
     node: node, 
     duration: 1.0, 
     easing: Y.Easing.easeOut 
    }); 

...等

注:本機適用於YUI2。

回答

1

是!例如:

var myAnim = new YAHOO.util.Anim("yourId", { 
    left: {from: 0, to:75} 
}, 1); 

myAnim.onComplete.subscribe(function() { 
    alert('Done!'); 
}); 

有關更多示例,請參閱http://developer.yahoo.com/yui/examples/animation/index.html

+0

這是YUI 2還是3?它沒有聲音在我的代碼上工作...我想即時通訊使用yui3 – Francesco

+3

這是爲2.x.我從來沒有使用3.x,但文檔有一些信息在這裏:http://yuilibrary.com/yui/docs/anim/end-event.html –

+0

非常感謝!我解決了它 – Francesco

0

的想法是,既然動畫需要時間,你可能希望在動畫完成執行,你可能需要的任何額外的邏輯來通知:以下是該事件的幾個用途:

  1. 觸發一旦動畫完成,額外的動畫。這可以位於UI的相同元素或完全不同的部分。
  2. 從DOM中刪除元素。也許這是一個彈出窗口,一旦它被關閉(與動畫),是DOM不再需要
  3. 其他的東西,想與內容等填充元素
1

後做些什麼動畫完成後,您只需要聽「結束」事件:

var anim = new Y.Anim({ 
    node: node, 
    duration: 1.0, 
    easing: Y.Easing.easeOut, 
    on: { 
     end: function (e) { 
      // your stuff here 
     } 
    } 
});