GORAGOD.com

opacity filter และ IE8

IE8 ไม่ได้สนับสนุน property opacity และ property filter แล้วนะครับ (แต่แว่วๆว่าจะกลับมาใน IE9 ซึงใช้ CSS3) ทำให้ไม่สามารถใช้ effect บน IE8 ได้

เช่นการกำหนดด้วย Javascript

function setimgopacity( obj , opacity )
{
  obj.style.filter = "alpha(opacity=" + ( opacity *100 ) + ")";
  obj.style.MozOpacity = opacity;
  obj.style.KhtmlOpacity = opacity;
  obj.style.opacity = opacity;
}

หรือการกำหนดด้วย CSS

#overlay {
  filter:alpha(opacity="70");
  MozOpacity:0.7;
  KhtmlOpacity:0.7;
  opacity:0.7;
}

หรือแม้แต่คำสั่ง filter ของ IE ก็ไม่สามารถใช้งานได้

filterstring = "progid:DXImageTransform.Microsoft.Fade(duration=3,overlap=1)";
overlay.style.filter = filterstring;

ผมเองก็จนปัญญาที่จะหาคำสั่งมาแทนที่ ทำให้ไม่สามารถใช้ effect ที่เคยใช้บน IE8 ได้ แต่ปัญหานี้สามารถแก้ไขได้ด้วยการกำหนดให้ IE8 ทำงานในโหมดของ IE7 ด้วยการกำหนด Document Compatibility ให้กับเพจ
 
<meta http-equiv="X-UA-Compatible" content="IE=7" />

แทรกโค้ดนี้ไว้ในส่วน head ของเพจครับ