2013-10-04 2 views
-1

Так я работаю с CSS-анимации, и в JavaScript вы можете запустить один и остановить один со следующим кодом:JQuery элемент яваскрипта элемента

element.style.webkitAnimationPlayState="paused"; 
element.style.webkitAnimationPlayState="running"; 

теперь у меня есть некоторые Jquery, который выглядит так:

$(".info").click(function(){ 
    $it = $(this).closest(".thing"); 
    //how can I use the above javascript on the specified jquery element? 
}); 

мой вопрос находится в комментарии в коде. Возможно ли это? и как?

here is a jsfiddle showing how it is not working

ответ

0

Если вы хотите, чтобы приостановить анимацию (а затем возобновить с того, что оно было приостановлено) вы можете переключить его состояние воспроизведения с этим CSS собственности:

.paused { 
    -ms-animation-play-state:paused; 
    -o-animation-play-state:paused; 
    -moz-animation-play-state:paused; 
    -webkit-animation-play-state:paused; 
    animation-play-state: paused; 
} 

Вы могли тогда использовать JQuery для переключения приостановленного класс:

$(".info").click(function(){ 
    $it = $(this).closest(".thing"); 
    $it.toggleClass("paused"); 
}); 
+0

я не пытаюсь сделать паузу анимации ... –

3

здесь $lt является JQuery объект обертки, а не дом элемент ссылки, вы можете получить ссылку дом элемент, используя индекс 0

$it[0].style.webkitAnimationPlayState="running"; 

Демо: Fiddle

или использовать ползунки .css() обеспечивается JQuery, чтобы установить значения стиля

$it.css('webkitAnimationPlayState', 'running'); 

Демо: Fiddle

+0

спасибо ... теперь посмотрите на эту скрипку: http://jsfiddle.net/zj5G5/11/ ... как пришла пауза не работает? –

+0

@RyanSaxe это должно быть как http://jsfiddle.net/arunpjohny/8WQcy/1/ метод 'on' должен вызываться в элементе-оболочке ... также он не должен находиться внутри обработчика кликов ... –

+0

jsfiddle, который вы мне дали, не работает ... –

0

$ это массив. Так что, если он содержит только один элемент, вы можете сделать,

$it[0].style.webkitAnimationPlayState="running"; 

и если $ содержит более одного элемента, и вы хотите применить этот стиль к каждому элементу тогда,

$($it).each(function(){this.style.webkitAnimationPlayState="running";}); 
0

Вы можете использовать CSS property of jquery элемент для этого.

$(".info").click(function(){ 
    var $it = $(this).closest(".thing"); 
    alert($it.text()); 
    $it.css({"webkitAnimationPlayState":"running"}); 
}); 

DEMO:

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