Применение функции с таймаутом к нескольким элементам
Здравствуйте.
Такой вопрос, есть на странице куча картинок. Все изначально имеют прозрачность 0.7. при наведении вызывается функция increaseOpacity, а при убирании мышки decreaseOpacity. var t, t2, op; function increaseOpacity(elem, x) { op = (elem.style.opacity) ? parseFloat(elem.style.opacity) : parseInt(elem.style.filter) / 100; if (op < x) { clearTimeout(t2); op += 0.05; elem.style.opacity = op; elem.style.filter='alpha(opacity='+op * 100+')'; t = setTimeout(function() { increaseOpacity(elem, x); }, 20); } } function decreaseOpacity(elem, x) { op = (elem.style.opacity) ? parseFloat(elem.style.opacity) : parseInt(elem.style.filter) / 100; if (op > x) { clearTimeout(t); op -= 0.05; elem.style.opacity = op; elem.style.filter='alpha(opacity='+op * 100+')'; t2 = setTimeout(function() { decreaseOpacity(elem, x); }, 0); } } проблема в том что t и t2 в единственном экземпляре и при быстром проведении мышки по картинкам функции не успевают выполнится и прозрачность остается на неправильном уровне. что с этим делать? заранее спасибо. |
все отлично. так и хотел но почему то не подумал привязать событие onmouseout прямо после выполнения появления.но есть одна проблема если я хочу понизить прозрачность до нуля то доходит до 0.04999 и продолжается бесконечное уменьшение
|
Часовой пояс GMT +3, время: 13:30. |