Показать сообщение отдельно
  #1 (permalink)  
Старый 11.10.2010, 15:40
Новичок на форуме
Отправить личное сообщение для mikser763 Посмотреть профиль Найти все сообщения от mikser763
 
Регистрация: 11.10.2010
Сообщений: 1

Прерывается выполнение функции при смене аргумента
Есть вот таких 2 функции для изменения прозрачности изображения.
Сделал с помощью них навигацию и обнаружил, что функция SmoothHide, если резко перевезти курсор на другой пункт меню, не успевает сделать элемент прозрачным, как был до наведения.

Как я понял при наведении на другой элемент, objId меняется и выполнение функции со старым objId прерывается. У кого-нибудь есть идеи как сделать?

var hT, sT;
flag=1
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) 
{ 
clearTimeout(hT);
op += 0.1; 
obj.style.opacity = op; 
obj.style.filter='alpha(opacity='+op*100+')'; 
sT=setTimeout('SmoothShow(\''+objId+'\', '+x+')',50); 
} 
}
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.1; 
	obj.style.opacity = op; 
	obj.style.filter='alpha(opacity='+op*100+')'; 
	hT=setTimeout('SmoothHide(\''+objId+'\', '+x+')',50); 
}
}
Ответить с цитированием