имеется div: <div id="message" class="" style="opacity: 0; filter: alpha(opacity=0);"></div>
и скрипт:
var hT, sT, dT; //таймеры
function SmoothShow(objId, x)
{
var obj = document.getElementById(objId);
op = (obj.style.opacity)?parseFloat(obj.style.opacity):parseInt(obj.style.filter)/100; //определяем значение прозрачности
if(op < x) //если значение прозрачности меньше 1 то:
{
clearTimeout(hT);
op += 0.05; //переменная хранящая значение прозрачности которое сейчас будем устанавливать
obj.style.opacity = op;
obj.style.filter='alpha(opacity='+op*100+')';
sT=setTimeout('SmoothShow(\''+objId+'\', '+x+')',50); //данная функция запускается с задержкой 50 мс, пока прозрачность не будет равна 1
}
if (op==1) { //если прозрачность = 1, то после задержки в 3 секунды запускается функция которая по аналогичному принципу обеспечивает исчезание
clearTimeout(dT);
dT=setTimeout("SmoothHide('message', 0)", 3000);
}
}
function SmoothHide(objId, x)
{
var obj = document.getElementById(objId);
op = (obj.style.opacity)?parseFloat(obj.style.opacity):parseInt(obj.style.filter)/100;
if(op > x)
{
clearTimeout(sT);
op -= 0.05;
obj.style.opacity = op;
obj.style.filter='alpha(opacity='+op*100+')';
hT=setTimeout('SmoothHide(\''+objId+'\', '+x+')',25);
}
if (op==x) {
document.getElementById("message").style.display = "none";
}
}
Скрипт должен обеспечивать плавное появление и плавное исчезание, в нормальных браузерах все работает, прям никаких нареканий, а вот IE не хочет, доходит только до середины скрипта, сообщение плавно появляется и на этом все. Функция появления вызывается из другой функции, но я думаю не совсем важно из какой, если в остальных браузерах работает
P.S. еще раз хочу обратить внимание на то, что в остальных браузерах работает!!!