它可能是更容易通過的onComplete做的元素只是補間閃爍的效果:
http://jsfiddle.net/hL6rT/2/
var fadeImg = document.id('lucy');
fadeImg.set("tween", {
duration: 2000,
transition: Fx.Transitions.Quint.easeIn,
onComplete: function() {
this.element.fade(this.element.getStyle("opacity") == 0 ? 1 : 0);
}
}).fade(0);
// how you can cancel it
document.id("stop").addEvent("click", function(e) {
e.stop();
fadeImg.get("tween").cancel(); // this cancels it.
});
解決您的版本: http://jsfiddle.net/hL6rT/4/
工作正常如果將不透明度的初始值設置爲0
var fadeImg = document.id('lucy').setStyle("opacity", 0);
var fadeIn = function() {
var inDiv = new Fx.Morph(fadeImg, {
link: 'cancel',
duration: 2000,
transition: Fx.Transitions.Quint.easeIn,
onComplete: function() {
fadeOut();
//alert('FadeIn Complete');
}
}).start({
'opacity': ['0', '1']
});
};
var fadeOut = function() {
var outDiv = new Fx.Morph(fadeImg, {
link: 'cancel',
duration: 2000,
transition: Fx.Transitions.Quint.easeOut,
onComplete: function() {
fadeIn();
//alert(FadeOut Complete!');
}
}).start({
'opacity': ['1', '0']
});
};
fadeIn();
更新 IE似乎並不一致地喜歡這種被鏈接的特定轉換。您可能需要刪除它並使用默認的。
+1對於@Dimitar。另外,我很喜歡link-to-jsfiddle在這裏變成了一件事情! – 2010-11-12 17:51:51
沒有。您的res resutions在IE8中不起作用,Mootools 1.3 – Nicekiwi 2010-11-13 02:05:45
這很奇怪,在ie8中對我有用。但是在ie7中,如果特定的fx.transition轉換在那裏,則不會。一旦我刪除了,似乎很好。 http://jsfiddle.net/hL6rT/8/ – 2010-11-13 02:24:31