Я хочу добавить кнопки в свою карусель, которые появляются, когда пользователь зависает над карусели и скрывает их, когда они покидают этот элемент.
Я сделал это, но когда я быстро вхожу и оставляю зависающий элемент, анимация (непрозрачность 0-1) повторяется, как только я остановлюсь.
Вот скрипка, чтобы продемонстрировать. Вам нужно быстро войти и оставить окно результатов, чтобы увидеть, что я имею в виду (черные черновые вещи представляют собой представление моих кнопок)
transitions the opacity on hover, but repeats it a lot when hovered many times
кто-нибудь знает, как я могу остановить это? высоко оценили, были у него часами (т.е. почти весь день:/)
Обновлен ваш пример, чтобы использовать анимацию CSS3 как способ продвижения в настоящее время. Нет необходимости в javascript, улучшать производительность и грациозную деградацию бесплатно!
.next,
.prev {
opacity: 0;
transition: opacity .25s ease-in-out;
-moz-transition: opacity .25s ease-in-out;
-webkit-transition: opacity .25s ease-in-out;
}
.image_carousel:hover .next,
.image_carousel:hover .prev {
opacity: 1;
}
Вы можете просто использовать .fadeTo()
вместо метода анимации, а также .stop()
чтобы прервать текущую анимацию.
var $buttons = $('#next, #prev').hide();
$('.image_carousel').hover(function() {
$buttons.stop().fadeTo(300,1);
},
function(){
$buttons.stop().fadeTo(300,0);
});
вы можете "остановить" его методом stop
,
x.stop(true,true).animate(
http://jsfiddle.net/Tentonaxe/BrshS/4/
или даже метод finish
.
x.finish().animate(