2016-01-19 2 views
4

У меня есть несколько строк Jquery:Jquery перезапустить анимацию после нажатия кнопки

$(document).on('click', '#clicked', function(e){ 
    e.preventDefault(); 
    $(".speech").css("animation-play-state", "running"); 
}); 

// Change text on click and reset animation 
// 
$(document).on('click', '#clicked2', function(e){ 
    e.preventDefault(); 
    $('.speech').each(function() { 
     var text = $(this).text(); 
     $(this).text(text.replace('I AM A WOOKIE!!', 'YOU CLICKED!')); 
    }); 
    setTimeout(function(){ 
     var redo= $('.speech'); 
     $("." + redo.attr(".speech") + ":last").remove(); 
     // $(".speech").remove(); 
     $(".speech").css("animation-play-state", "paused"); 
    }, 2000); 
}); 

Как это работает до сих пор является то, что при нажатии кнопки #clicked анимационной пьесы.

К тому же, щелкнув по кнопке «clicked2», он изменит строку с «Я-А-ВУКИ» !! ВАМ ЩЕЛКНУТ !.

То, что я тогда пытаюсь достичь, после функции таймаута затем сбрасывается обратно в начало оригинальной анимации. Так что в основном кнопка сброса, но я не уверен, как туда добраться.

линии в вопросе являются:

setTimeout(function(){ 
    var redo= $('.speech'); 
    $("." + redo.attr(".speech") + ":last").remove(); 
    // $(".speech").remove(); 
    $(".speech").css("animation-play-state", "paused"); 
}, 2000); 

Все остальное работает как положено. Я просто не уверен в правильном синтаксисе, чтобы сбросить свою анимацию, так TAHT при нажатии кнопки #clicked снова в основном, начиная с самого начала

https://jsfiddle.net/uLg99tsw/8/

+1

Подготовьте jsfiddle, пожалуйста, и я постараюсь помочь вам :) - joryl –

+1

Вы можете также предоставить HTML-коду или демо JSFiddle показать текущую ситуацию, о которой говорил Джорил? :) –

+0

Привет Извините, добавит скрипку на вопрос – factordog

ответ

0

Вы используете animation-play-state. Почему вы не используете transitions? Взгляните на this и просто add/remove ваш класс перехода CSS к вашей разметке при нажатии кнопки.

+0

Причина im не заключается в том, что я просто практикую концепцию сброса переменных и их повторное включение, если человек должен был пройти через второй или третий раз. Добавление и удаление классов - идеальный вариант, но только для того, что я пытаюсь изучить и добиваться этого, немного сложнее – factordog

0

Я создал класс anim затем переключен его:

.anim { 
    animation: talking 2s forwards; 
} 

$(document).on('click', '#clicked', function(e) { 
    e.preventDefault(); 
    $(".speech").text("I AM A WOOKIE!!").toggleClass("anim"); 
}); 

$(document).on('click', '#clicked2', function(e) { 
    e.preventDefault(); 
    $(".speech").text("YOU CLICKED!"); 
}); 

Here is the JSFiddle demo

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