//Checking du navigateur var uAgent=navigator.userAgent; var ns4 = (document.layers)? true:false; //NS 4 var ie4 = (document.all)? true:false; //IE 4 var dom = (document.getElementById)? true:false; //DOM var ope = uAgent.indexOf("Opera")>-1 && dom? true:false; // + OP5 var ie5 = (dom && ie4 && !ope)?true:false; // IE5 var ns6 = (dom && uAgent.indexOf("Netscape")>-1)? true:false; // + NS 6 var khtml = uAgent.indexOf("khtml")>-1? true:false; // + Konqueror //alert("UserAgent: "+uAgent+"\nns4 :"+ns4+"\nie4 :"+ie4+"\ndom :"+dom+"\nie5 :"+ie5+"\nns6 :"+ns6+"\nope :"+ope+"\nkhtml :"+khtml); //gestion des objets selon les navigateurs function ob(id) { if (dom) obj = document.getElementById(id); else if (ie4) obj = document.all[id]; else if (ns4) obj = document.anchors[id]; else obj=false; return obj; } // Fade Array.prototype.inArray=function(str){//on modifie l'objet Array for(i=0; i< this.length; i++)if(this[i].toString()==str)return i; return -1; } //On modifie l'objet String String.prototype.exist=function(){return (this=="undefined"?false:true);}; //Opacité function setOpacity(id,alpha,isObj) { if(!dom)return; var object = isObj?id:ob(id); if(String(typeof object.filters).exist())object.filters.alpha.opacity = alpha; else if(String(typeof object.style.opacity).exist()) object.style.opacity = (alpha/100); else if(String(typeof object.style.KhtmlOpacity).exist()) object.style.KhtmlOpacity = (alpha/100); else if(String(typeof object.style.MozOpacity).exist()) object.style.MozOpacity = (alpha/100); } function getOpacity(id,isObj){ if(!dom)return; var object = isObj?id:ob(id), alpha=null; if(String(typeof object.filters).exist()) alpha = object.filters.alpha.opacity; else if(String(typeof object.style.opacity).exist()) alpha = object.style.opacity*100;//css3 propertie else if(String(typeof object.style.KhtmlOpacity).exist()) alpha = object.style.KhtmlOpacity*100; else if(String(typeof object.style.MozOpacity).exist()) alpha = object.style.MozOpacity*100; return alpha; } // Fading vit=5; //temps entre chaque addition d'opacité(+ petit -> + de qualité -> + dur pour le navigateur) add=4; //valeur à additionner (idem) nObj=0; fadeObjects=new Object(); fadeTimers=new Object(); fadeIds=new Array(); function fade2(object, destOp){ if (!dom) return; if (object.toString().indexOf("[object")==-1){setTimeout("fade2("+object+","+destOp+")",0); return;} alpha=getOpacity(object,true); index=fadeIds.inArray(object.id); if(index>-1)clearTimeout(fadeTimers[index]); else { index=nObj++; fadeIds[index]=object.id; } diff = destOp-alpha; direction=1; if (alpha > destOp)direction=-1;//de - en - opaque alpha+=direction * Math.min(direction*diff,add);//ajoute le + petit entre la diférence et add setOpacity(object,alpha,true); alpha=getOpacity(object,true); object.offsetLeft; if (Math.round(alpha) != destOp){ fadeObjects[index]=object; fadeTimers[index]=setTimeout("fade2(fadeObjects["+index+"],"+destOp+")",vit); } return; }