2009-07-07 15 views
1

Scriptaculous的Effect.Morph可以接受一個CSS類並在一段時間內應用它。我有一個div,當點擊一個按鈕時會展開,所以它使用Effect.Morph來應用一個.expanded類。如何使用Scriptaculous的Effect.Morph關閉課程?

現在我想在第二次點擊時刪除.expanded類,再次關閉div。我怎樣才能調用Effect.Morph來做到這一點?

+0

你應該透過這裏的路徑,或Scriptaculous的頁面上的鏈接。我遇到了同樣的問題,並且路徑會很有用 – Quamis 2011-03-04 15:29:46

回答

1

的文件說,這大約Effect.Morph

這種效應改變的CSS屬性的元素 。

所以,你會需要再次調用它,指定初始CSS屬性,使你的DIV可以恢復到初始狀態,例如(再次,從文檔):

<div id="morph_demo" style="background:#cccccc; width:100px; height:100px;"></div> 
<ul> 
    <li><a href="#" onclick="$('morph_demo').morph('background:#00ff00; width:300px;'); return false;">Click me for a demo!</a></li> 
    <li><a href="#" onclick="$('morph_demo').morph('background:#cccccc; width:100px;'); return false;" >Reset the demo!</a></li> 
</ul> 

另外,你可以使用原型來remove the class altogether

$('yourDivId').removeClassName('yourClassId'); 

Scriptaculous的取決於Prototype.js,如果你不知道的,所以第二個選項是可行的。

最後,您可以set the style不了了之(我認爲):

$('yourDivId').setStyle(null); 
+1

是的,看起來答案是它不能用變形效果來完成(沒有重申元素的所有樣式而沒有應用類,這不是非常乾燥)。不過,我已經擴展了Effect.Morph來做我想做的事情,所以我會將一個補丁推到Scriptaculous上。 – Peeja 2009-07-08 14:38:40