нужна помощь по таймеру или что то в этом роде
Народ вообщем такое дело...
у меня есть 5 одинаковых ссылок с одинаковым классом при клике на одну из них произходит определённое анимационное действие...но если кликать быстро на все сразу то всё начинает вылазить за рамки дёрганье и т.д вообщем некрасивый бардак... мне нужно что бы при клике на одну ссылку пока анимация не закончится другие не работали как это можно реализовать??? |
Очевидно, не запускать новую анимацию, пока не закончится текущая.
http://api.jquery.com/animate/ Цитата:
|
Цитата:
и вот мой код поправте всё что не коректо! оно то всё работает но я не профи и знаю что полюбому костыли есть!
$open_slide.live("click", // ловим клик на .open_slide через live()
function(e){
var this_os = $(this); // загоняем this в переменную
var ind_ws = this_os.closest($wrapper_slide).index(); //сохраняем в переменную index текущего wrapper_slide
if(this_os.data("active") != true){ //проверка активности
e.preventDefault(); //запрет перехода ссылки
this_os.data("active",true); // добовляем состояние текущему .open_slide
console.time('create list');
$wrapper_slide.filter("[rel=act]").removeAttr("rel").animate({"width":"30"}); // анимируем стартовую ширину .wrapper_slide с атрибутом, удаляем атрибут
$slide.filter("[rel=act]").removeAttr("rel").animate({"opacity":"hide","width":""}); // анимируем стартовую ширину .slide с атрибутом, удаляем атрибут
console.timeEnd('create list');
this_os.next($slide).attr("rel","act").delay(500).animate({"width":"600","opacity":"show"},600);// текущему .slide даём анимацию и атрибут
this_os.closest($wrapper_slide).attr("rel","act").delay(500).animate({"width":"625"},300); // текущему .wrapper_slide даём анимацию и атрибут
$open_slide.filter(":not(:eq("+ind_ws+"))").data("active",false); // удаляем состояние всех .open_slide кроме текущего
}<!--close if-->
}<!--close function click-->
);<!--close click-->
|
1. Добавить переменную disableAnimation
2. Перед выполнением анимации проверять первую, если disableAnimation==true, то новую анимацию не начинать 3. При проигрывании анимации выставлять переменную в true, по окончании анимации - сбрасывать в false |
| Часовой пояс GMT +3, время: 13:46. |