Прежде всего вы можете захотеть кэшировать ваши объекты jQuery для повышения производительности и читабельности, затем вы можете добавить метод .stop()
, чтобы остановить текущую анимацию и запустить новую из текущей точки, вместо того, чтобы видеть очереди анимации и циклы и ведет себя странно. затем добавьте .fadeOut()
и .fadeIn()
к триггерам, когда произойдет щелчок. И вам следует привыкнуть к использованию .bind()
, а не .click()
, .keydown()
и т. Д., Так как это псевдонимы для метода связывания, поэтому более эффективно использовать связывание напрямую. Кроме того, проще использовать пространства имен событий с привязкой и многое другое. Check the jQuery API!
var trigger_left = $('#trigger_left'),
trigger_right = $('#trigger_right'),
slider = $('#slider');
slider[0].style.width = "30px"; // and use native js where you can
//- it speeds things up and prepares you for when you can't use jQ :)
trigger_left.bind('click', function() {
trigger_left.stop().fadeOut();
trigger_right.stop().fadeIn();
slider.stop().animate({
width: '100%'
}, 1500);
});
trigger_right.bind('click', function() {
trigger_right.stop().fadeOut();
trigger_left.stop().fadeIn();
slider.stop().animate({
width: '30px',
}, 1500);
}
);