2016-12-30 5 views
1

Возможно ли анимировать элемент с помощью мыши и animate.css?Анимация элемента mouseover и animate.css

$(document).ready(function(){ 
    $("p").mouseover(function(){ 
     $("p").css("background-color", "red"); 
     $("#mystyle").animateCss('bounce'); 
    }); 
    $("p").mouseout(function(){ 
     $("p").css("background-color", "gray"); 
    }); 
}); 

Я пробовал, но что-то не так. https://jsfiddle.net/f79b7033/

+0

Если вы хотите использовать 'animateCss' функцию вам необходимо будет включить его в свой код. Проверьте мой ответ :) – Dekel

ответ

3

Согласно documentation in animation.css, вы можете продлить JQuery с помощью:

$.fn.extend({ 
    animateCss: function (animationName) { 
     var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'; 
     this.addClass('animated ' + animationName).one(animationEnd, function() { 
      $(this).removeClass('animated ' + animationName); 
     }); 
    } 
}); 

И вы не добавить его в свой код.

Вот рабочий пример (включая приведенный выше код):
https://jsfiddle.net/dekelb/9jaq7fhr/

2

Я не знаком с animate.css, но открыв консоль вы получите ошибку:

Uncaught TypeError: $(...).animateCss is not a function 
    at HTMLParagraphElement.<anonymous> ((index):53) 
    at HTMLParagraphElement.dispatch (jquery-3.1.1.js:5201) 
    at HTMLParagraphElement.elemData.handle (jquery-3.1.1.js:5009) 

Так я смотрел на документацию для animate.css и нашел это:

$('#yourElement').addClass('animated bounceOutLeft');

добавил, что вместо того, чтобы и здесь ваша скрипка - похоже, что это работает:

https://jsfiddle.net/f79b7033/3/

EDIT: Dekel отметил, что вышеуказанная ошибка была вызвана не продлевая Jquery (см свой ответ о том, как это сделать). Это версия, отличная от jQuery.

+0

Использование опции «addClass» является опцией, но если вы хотите использовать функцию «animateCss», вам нужно будет расширить jQuery. Прочтите мой ответ для получения дополнительной информации об этом. – Dekel

+0

@Dekel Делает смысл. Угадай, что я не читал достаточно далеко в документации :) Упрощенный ответ, так как это лучший ответ, я сделаю редактирование, объясняющее, что мой - это не-JQuery способ сделать это. – Chris

+0

Получил голосование на вашем тоже :) – Dekel

Смежные вопросы