fx.morph デモと同様の結果を得ようとしていますが、「mouseenter」または「mouseleave」の代わりにクリックします。リスト オプションをクリックすると、変形するはずです。別のアイテムをクリックすると、元のアイテムがデフォルトの状態にモーフィングしている間にモーフィングする必要があります。最初の部分は非常に簡単ですが、これまでのところ、2 番目の部分を希望どおりに機能させることができませんでした。「clickOutside」イベントを作成しようとしましたが、リスト項目ではない場所をクリックした場合にのみ機能します。新しいアイテムは変形しますが、古いアイテムは元の状態に戻りません。
私がこれまでのところ:
Element.Events.outerClick = {
base : 'click',
condition : function(event){
event.stopPropagation();
return false;
},
onAdd : function(fn){
this.getDocument().addEvent('click', fn);
},
onRemove : function(fn){
this.getDocument().removeEvent('click', fn);
}
};
window.addEvent('domready', function() {
$$('#idList LI').each(function(el) {
el.set('morph', {
duration: 200
}).addEvents({
click: el.morph.pass('.hover', el),
outerClick: el.morph.pass('.default', el)
});
});
});
いじりたい場合: http://jsfiddle.net/JXTMa/
元のコンセプトを説明するために、元の mouseenter の例に戻しました。