neilime

neilime
- Name: [not set]
- Favorite Languages: [not set]
- Website: [not set]
- Location: [not set]
- About Me: [not set]
-
Javascript Tutorial - Simple Fade Animation
06/15/2010 - 07:12
Here is my version, i guess i fixe 2 bugs
n°1 : fadeIn on an element which has " filter : alpha(opacity=0)" seems doesn't workn°2 : fadeout on an element which contains elements which are on "position : absolute" seems doesn't work
function fadeElement(sElementId, fLastTick){
var fFadeTime = 500.0;
var fFadeMin = 0.0;
var fFadeMax = 1.0;
var eElement = document.getElementById(sElementId);
if(!eElement)return;
var fTick = new Date().getTime();
if(eElement.fadeState){
if(fLastTick)eElement.fadeTime += fTick-fLastTick;
else{
eElement.fadeState = eElement.fadeState === 1 ? -1 : 1;
eElement.fadeTime = fFadeTime-eElement.fadeTime;
return true;
}
}
else{
if('undefined' !== typeof(eElement.style.opacity))eElement.fadeState = parseFloat(eElement.style.opacity) === fFadeMax ? -1 : 1;
else{
if('undefined' !== typeof(eElement.style.filter)){
var iIeOpacity = parseFloat(eElement.style.filter.replace('alpha','').replace('opacity','').replace('=','').replace(')','').replace('(',''))/100;
eElement.fadeState = iIeOpacity === fFadeMax ? -1 : 1;
}
else return false;
}
eElement.fadeTime = 0.0;
}
var fOpacity = eElement.fadeTime/fFadeTime;
if(eElement.fadeTime >= fFadeTime)fOpacity = 1.0;
if(eElement.fadeState == -1)fOpacity = 1.0-fOpacity;
fOpacity = (fFadeMax-fFadeMin)*fOpacity+fFadeMin;
eElement.style.opacity = fOpacity;
eElement.style.filter = 'alpha(opacity='+fOpacity*100+')';// IE
if(eElement.children.length>0){
for(var i=0; i<eElement.children.length;i++){
eElement.children[i].style.filter = 'alpha(opacity='+fOpacity*100+')';// IE
}
}
if(eElement.fadeTime >= fFadeTime)eElement.fadeState = null;
else setTimeout("fadeElement('"+eElement.id+"',"+fTick+")", 33);
}Ps : sorry for my english... i'm french
Recent Comments