Может решение , которое я придумал покажется не оптимальным, но я сделал так:
function show_menu(name) { if(name=='foto'){objectm = document.getElementById('foto-menu');} if(name=='main'){objectm = document.getElementById('main-menu');} var width = parseInt(objectm.style.width); var opacity = parseFloat(objectm.style.opacity); if(width <= 200) { clearTimeout(t2); //очищение таймаута hide width += 2; objectm.style.width = width; if(opacity <= 0.9) { opacity += 0.01; objectm.style.opacity = opacity; } t = setTimeout(arguments.callee,5); // собственный таймаут } } Всё работает прекрасно.:dance: Kolyaj, за подсказку. |
создай переменную вне функции и меняй её значение до вызова функции
Кстати, в IE6 opacity криво (а точнее ни как не) работает, рекомендую изменять это свойство через jQuery, с ним вроде бы пашет |
Цитата:
|
оно и в прежнем варианте неплохо работало ....малость подправить только
var t=[],t2=[]; function show_menu(name) { var objectm = document.getElementById(name+'-menu'); var width = parseInt(objectm.style.width); var opacity = parseFloat(objectm.style.opacity); if(width <= 200) { if(t2[name+'-menu']) clearTimeout(t2[name+'-menu']); width += 2; objectm.style.width = width+"px"; if(opacity <= 0.9) { opacity += 0.01; objectm.style.opacity = opacity; } t[name+'-menu'] = setTimeout("show_menu('"+name+"')",5); } } function hide_menu(name) { var objectm = document.getElementById(name+'-menu'); var width = parseInt(objectm.style.width); var opacity = parseFloat(objectm.style.opacity); if(width >= 0) { if(t[name+'-menu']) clearTimeout(t[name+'-menu']); width -= 2; objectm.style.width = width+"px"; if(opacity >= 0) { opacity -= 0.01; objectm.style.opacity = opacity; } t2[name+'-menu'] = setTimeout("hide_menu('"+name+"')",5); } } |
Часовой пояс GMT +3, время: 21:36. |