CSS3 добавляет несколько свойств перехода для обработки подобных вещей, но на данный момент, если вы настроены на использование jQuery, вы можете использовать функцию .animate
в сочетании с mouseenter
и mouseleave
.
Пример:
$('img')
.mouseenter(function() {
$(this).stop(true,true).animate({ opacity: 0.5 }, 2000);
});
.mouseleave(function() {
$(this).stop(true,true).animate({ opacity: 1 }, 2000);
});
.stop
очистит предыдущую анимацию и завершит ее так, что, если пользователь будет быстро наводить курсор на элемент несколько раз, он не позволит анимациям накапливаться в длинной очереди.