javascript で div をフェードイン

Firefox の javascript で div をフェードインを利用しようと style.opacity で簡単に実現
と思いきや IEは、なんだか面倒だった
  1. var div = document.getElementById("hogehoge");  
  2. AlphaHideDiv(div); // 非表示  
  3. // div へ書き込んだりする  
  4. AlphaFadeinDiv(div); // フェードイン  
  5.   
  6.   
  7. // フェードイン  
  8. function AlphaFadeinDiv(div){  
  9.  if (window.navigator.userAgent.toLowerCase().indexOf('msie') != -1) {  
  10.   var alphavalue = Number(String(div.style.filter.match(/opacity=[0-9]+/)).split('=')[1]);  
  11.   
  12.   if( alphavalue < 100 ){  
  13.    div.style.filter = 'alpha(opacity=' + (alphavalue + 25) + ')';  
  14.    setTimeout(function () { FadeinDiv(div);  }, 50);  
  15.   }  
  16.  }else{  
  17.   if(div.style.opacity < 1){  
  18.    div.style.opacity = Number(div.style.opacity) + 0.25;  
  19.    setTimeout( function() { FadeinDiv(div); }, 100);  
  20.   }  
  21.  }  
  22. }  
  23.   
  24. // 前処理(アルファブレンドで非表示にしておく)  
  25. function AlphaHideDiv(div){  
  26.  if (window.navigator.userAgent.toLowerCase().indexOf('msie') != -1) {  
  27.   if ( ! div.currentStyle.hasLayout ){  
  28.    div.style.zoom = 1;  
  29.   }  
  30.   div.style.filter = 'alpha(opacity=0)';  
  31.  }else{  
  32.   div.style.opacity = 0;  
  33.  }  
  34. }  

コメント