Вам вообще не нужен JavaScript / jQuery.Замените все ссылки .flip
в вашем CSS на :hover
: http://jsfiddle.net/V7cS8/1/
. Для задержек вы можете использовать transition-delay: 1s
.
Применить transition-delay:1s;
(задержка 1 секунда с префиксами поставщика) для обычного селектора и transition-delay:0s
для селектора :hover
.В результате бэкфлип будет задержан на 1 секунду.
Результат цепочки комментариев: Когда существующие анимации должны быть завершены первыми,независимо от состояния наведения необходимо использовать тайм-аут JavaScript:
$(function(){
$('.box').hover(function(){
var $this = $(this);
// If not not-ready, do nothing
// By default, the value is `undefined`, !undefined === true
var not_ready = $this.data('box-hover-not-ready');
if (!not_ready) {
$this.addClass('hover');
} else {
// If bosy, defer hover transition
$this.data('box-hover-hovered', true);
}
}, function() {
var $this = $(this);
$this.removeClass('hover');
// Mark state as "busy"
$this.data('box-hover-not-ready', true);
var timeout = setTimeout(function() {
var hovered = $this.data('box-hover-hovered');
if (hovered) {
// If a hover transition is deferred, activate it now.
$this.addClass('hover');
$this.data('box-hover-hovered', false);
}
// Mark state as "not busy"
$this.data('box-hover-not-ready', false);
}, 2000); /* 2 seconds*/
// Remove previous timeout, set new one.
clearTimeout($this.data('box-hover-timeout'));
$this.data('box-hover-timeout', timeout);
});
});