setTimeout дает наложение скриптов
Доброго здоровьеца (с) Малахов
Из за функции setTimeout 2 скрипта накладываются друг на друга, а именно , каждая функция висит на клике на объект, при клике на {объект 1} используется fadeIn+setTimeout(fadeOut,500)+setTimeout(fadeIn,1 000). Так вот если кликнуть еще раз через 500 мс на {объект 2}, то запустится еще один такой же скрипт, пока работает этот, они наложатся друг на друга и получается каша, что делать? ![]() |
Ариан,
а зачем вам setTimeout ? может callback использовать в fadeIn и fadeOut |
Цитата:
fadeOut1(a,b); // функция анимированного пропадания элемента setTimeout(removeFadeOut, 500,a); // отчищаются все вспомогательные классы анимаций через 500мс setTimeout(slide, 500); // слайд на следующую картинку setTimeout(fadeIn1, 500,b);// появление другой инфы на картинке Возможно такое сделать на колбаке лучше? |
Цитата:
|
Ариан,
сделайте минимальный макет Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Цитата:
Вот, кое как перенес в кодепен, сделать простой макет будет довольно проблематично думаю, но если этот пример в кодепен будет не понятен я потружусь сделать более простой. Пока кое как готов только красный блок, на его примере и расскажу об ошибке. Если нажать на краснй блок то появятся кольца, при нажатии на кольца они исчезают и появляется блок с текстом и красной кнопкой для закрытия, если же нажать на кольцо, которое меняет цвет, а потом нажать сразу же на другое кольцо, то блок с тектом спешит появиться, но что-то тут идет не так и он исчезает. |
Хмммм
я только что понял что фишка не в setTimeout, потому что при некоторых обстоятельствах даже после 5 секунд выдает ошибку Это крайне странно, ошибка происходит только после нажатия на круг который меняет цвет toggleClass('buyed') в 108 строке, функция вызывается в 140 строке |
Ариан,
слишком много классов, может взять какой-то готовый аккардеон - слайдер? |
Цитата:
вырезал половину, напоминаю что рабочий только красный блок Тут код каресели маленький, внутри одного блока карусели весь код в основном |
Ариан,
мало чем могу помочь, но таймеры по времени никогда не совпадут с временем анимации , если использовать классы то ориентироватся на transitionend или animationend или все эфекты делать на jquery и тогда callback и stop |
Часовой пояс GMT +3, время: 12:54. |