CSS animation doesn't restart when resetting classsetTimeout with 0ms needed to remove animation classRestart animation in CSS3: any better way than removing the element?CSS3 animation resetRestart css transition via jQuery or javascriptCSS3 & Jquery Animation - Repeat after some secondsHow to run the same animation when switching classes without JavaScriptRestart CSS3 animation after it's stoppedWhich characters are valid in CSS class names/selectors?When to use IMG vs. CSS background-image?Can a CSS class inherit one or more other classes?How to remove all CSS classes using jQuery/JavaScript?CSS selector for first element with classwildcard * in CSS for classesWhat is the difference between Normalize.css and Reset CSS?Reset/remove CSS styles for element only

How to evaluate math equation, one per line in a file?

Why do HK chefs use a white cloth to clutch wok?

How can I offer my prayers to an atheist?

What is the quickest way to raise Affection?

Exactly what color was the text on monochrome terminals with green-on-black and amber-on-black screens?

Help me pair my socks

What are the units of the product of two signals?

What is the largest piece of space debris volumetrically?

Why is it ethical for Ambassador Sondland to have been given an ambassadorship for campaign contributions?

A New Math Operation?

How can you weaponize a thermos?

Simulate reproduction in a population of oozes

Contacted by head of school regarding an issue - should I be worried?

My professor changed a take-home test to an in-class test with no notice. Can I fight the grade?

Is there a sonic boom when flying nearby?

Where should I search for computations of group cohomology rings of not-too-complicated finite groups?

Threatening to discontinue a service for a client

Pointlessly recurse down the alphabet

A Ukrainian idiom meaning "on one's last legs"

How to pass Collection of exceptions as a root cause?

How can I understand references in Seneca's Moral letters to Lucilius?

Suppose I capture encrypted data that I want to decrypt. Could I use a server farm to decrypt?

Dollar cost averaging vs buy low/sell high

If password expiration is applied, should door-lock expiration be applied too?



CSS animation doesn't restart when resetting class


setTimeout with 0ms needed to remove animation classRestart animation in CSS3: any better way than removing the element?CSS3 animation resetRestart css transition via jQuery or javascriptCSS3 & Jquery Animation - Repeat after some secondsHow to run the same animation when switching classes without JavaScriptRestart CSS3 animation after it's stoppedWhich characters are valid in CSS class names/selectors?When to use IMG vs. CSS background-image?Can a CSS class inherit one or more other classes?How to remove all CSS classes using jQuery/JavaScript?CSS selector for first element with classwildcard * in CSS for classesWhat is the difference between Normalize.css and Reset CSS?Reset/remove CSS styles for element only






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty
margin-bottom:0;









10


















I am using CSS shader + animation. My shader class is defined as follows:



.shader
-webkit-filter :custom(url(v.vs) mix(url(f.fs) multiply destination-over), 200 200);
-webkit-animation-name: test;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: 1



I am trying to set/unset the styles(shader+animation) dynamically using jquery through $('#holder').addClass('shader'); and $('#holder').removeClass('shader');



However, the weird thing is when I reset the class (e.g., calling addClass after removeClass), only the shader gets reapplied but the animation doesn't (I have hooked the AnimationStart event to see when my animation starts). Anyone know why this is the case and how I can solve it?



Edit:
I added a simplified version of JSfiddle snippet here. Essentially I'm re-applying the animation to a div twice but the actual animation only gets called the first time.










share|improve this question






















  • 2





    Did you try keeping the animation properties in a separate class that is never removed?

    – bfavaretto
    Apr 17 '13 at 3:31











  • mmmm no but I don't think that would help, since I only have 1 iteration and I call removeClass after the animationEnd event

    – Discombobulous
    Apr 17 '13 at 3:46











  • Can you post a jsFiddle so we can have a better look

    – apaul
    Apr 17 '13 at 3:53












  • An example of the animation/filter in action might help.

    – Bernie
    Apr 17 '13 at 3:57






  • 1





    Possible duplicate of Restart animation in CSS3: any better way than removing the element?

    – Vivek Maharajh
    Jun 29 '16 at 3:16

















10


















I am using CSS shader + animation. My shader class is defined as follows:



.shader
-webkit-filter :custom(url(v.vs) mix(url(f.fs) multiply destination-over), 200 200);
-webkit-animation-name: test;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: 1



I am trying to set/unset the styles(shader+animation) dynamically using jquery through $('#holder').addClass('shader'); and $('#holder').removeClass('shader');



However, the weird thing is when I reset the class (e.g., calling addClass after removeClass), only the shader gets reapplied but the animation doesn't (I have hooked the AnimationStart event to see when my animation starts). Anyone know why this is the case and how I can solve it?



Edit:
I added a simplified version of JSfiddle snippet here. Essentially I'm re-applying the animation to a div twice but the actual animation only gets called the first time.










share|improve this question






















  • 2





    Did you try keeping the animation properties in a separate class that is never removed?

    – bfavaretto
    Apr 17 '13 at 3:31











  • mmmm no but I don't think that would help, since I only have 1 iteration and I call removeClass after the animationEnd event

    – Discombobulous
    Apr 17 '13 at 3:46











  • Can you post a jsFiddle so we can have a better look

    – apaul
    Apr 17 '13 at 3:53












  • An example of the animation/filter in action might help.

    – Bernie
    Apr 17 '13 at 3:57






  • 1





    Possible duplicate of Restart animation in CSS3: any better way than removing the element?

    – Vivek Maharajh
    Jun 29 '16 at 3:16













10













10









10


4






I am using CSS shader + animation. My shader class is defined as follows:



.shader
-webkit-filter :custom(url(v.vs) mix(url(f.fs) multiply destination-over), 200 200);
-webkit-animation-name: test;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: 1



I am trying to set/unset the styles(shader+animation) dynamically using jquery through $('#holder').addClass('shader'); and $('#holder').removeClass('shader');



However, the weird thing is when I reset the class (e.g., calling addClass after removeClass), only the shader gets reapplied but the animation doesn't (I have hooked the AnimationStart event to see when my animation starts). Anyone know why this is the case and how I can solve it?



Edit:
I added a simplified version of JSfiddle snippet here. Essentially I'm re-applying the animation to a div twice but the actual animation only gets called the first time.










share|improve this question
















I am using CSS shader + animation. My shader class is defined as follows:



.shader
-webkit-filter :custom(url(v.vs) mix(url(f.fs) multiply destination-over), 200 200);
-webkit-animation-name: test;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: 1



I am trying to set/unset the styles(shader+animation) dynamically using jquery through $('#holder').addClass('shader'); and $('#holder').removeClass('shader');



However, the weird thing is when I reset the class (e.g., calling addClass after removeClass), only the shader gets reapplied but the animation doesn't (I have hooked the AnimationStart event to see when my animation starts). Anyone know why this is the case and how I can solve it?



Edit:
I added a simplified version of JSfiddle snippet here. Essentially I'm re-applying the animation to a div twice but the actual animation only gets called the first time.







javascript jquery css css3 webkit






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 17 '13 at 4:22







Discombobulous

















asked Apr 17 '13 at 3:24









DiscombobulousDiscombobulous

7731 gold badge9 silver badges20 bronze badges




7731 gold badge9 silver badges20 bronze badges










  • 2





    Did you try keeping the animation properties in a separate class that is never removed?

    – bfavaretto
    Apr 17 '13 at 3:31











  • mmmm no but I don't think that would help, since I only have 1 iteration and I call removeClass after the animationEnd event

    – Discombobulous
    Apr 17 '13 at 3:46











  • Can you post a jsFiddle so we can have a better look

    – apaul
    Apr 17 '13 at 3:53












  • An example of the animation/filter in action might help.

    – Bernie
    Apr 17 '13 at 3:57






  • 1





    Possible duplicate of Restart animation in CSS3: any better way than removing the element?

    – Vivek Maharajh
    Jun 29 '16 at 3:16












  • 2





    Did you try keeping the animation properties in a separate class that is never removed?

    – bfavaretto
    Apr 17 '13 at 3:31











  • mmmm no but I don't think that would help, since I only have 1 iteration and I call removeClass after the animationEnd event

    – Discombobulous
    Apr 17 '13 at 3:46











  • Can you post a jsFiddle so we can have a better look

    – apaul
    Apr 17 '13 at 3:53












  • An example of the animation/filter in action might help.

    – Bernie
    Apr 17 '13 at 3:57






  • 1





    Possible duplicate of Restart animation in CSS3: any better way than removing the element?

    – Vivek Maharajh
    Jun 29 '16 at 3:16







2




2





Did you try keeping the animation properties in a separate class that is never removed?

– bfavaretto
Apr 17 '13 at 3:31





Did you try keeping the animation properties in a separate class that is never removed?

– bfavaretto
Apr 17 '13 at 3:31













mmmm no but I don't think that would help, since I only have 1 iteration and I call removeClass after the animationEnd event

– Discombobulous
Apr 17 '13 at 3:46





mmmm no but I don't think that would help, since I only have 1 iteration and I call removeClass after the animationEnd event

– Discombobulous
Apr 17 '13 at 3:46













Can you post a jsFiddle so we can have a better look

– apaul
Apr 17 '13 at 3:53






Can you post a jsFiddle so we can have a better look

– apaul
Apr 17 '13 at 3:53














An example of the animation/filter in action might help.

– Bernie
Apr 17 '13 at 3:57





An example of the animation/filter in action might help.

– Bernie
Apr 17 '13 at 3:57




1




1





Possible duplicate of Restart animation in CSS3: any better way than removing the element?

– Vivek Maharajh
Jun 29 '16 at 3:16





Possible duplicate of Restart animation in CSS3: any better way than removing the element?

– Vivek Maharajh
Jun 29 '16 at 3:16












7 Answers
7






active

oldest

votes


















25



















The problem is that, even though you remove and then re-apply the animated class, you do this in the course of a single, blocking function. When your function exits, it appears to the rendering engine that nothing has changed.



One solution (the one that you chose), is to clone the element and destroy the original. This is fine, but if you had any event bindings to the original element (i think) they they will be destroyed too.



Another approach is to remove the animated class from the element, and then wrap the code that re-applies the class inside of a setTimeout() call with a very small delay, e.g.



$('#holder').removeClass('shader');
setTimeout(
function()$('#holder').addClass('shader')
, 1);


I've tweaked your jsfiddle to use this approach: http://jsfiddle.net/HuFBN/7/






share|improve this answer





















  • 2





    This is the correct answer. Extra points go for explaining why this hack is needed ("When your function exits, it appears to the rendering engine that nothing has changed").

    – Agoston Horvath
    Jul 10 '14 at 9:47











  • This worked for me. What I also like about it this too is that you can easily adjust the delay in this approach as when it should start again. thanks!

    – klewis
    Nov 10 '15 at 17:18


















4



















I think I figured it out. According to this, css animation can't get applied to the same node twice (even if you have a different animation!). So I had to clone the node, remove the original, and add back the cloned node.






share|improve this answer


























  • Different animations certainly work in Chrome.

    – dmi3y
    May 23 '17 at 17:20


















4



















According to a 2011 article on css-tricks.com, triggering a reflow in between removing and adding the class will restart the animation. Example (verbose):



$('#holder').removeClass('shader');
$('#holder').offsetWidth = $('#holder').offsetWidth; // triggers reflow
$('#holder').addClass('shader'); // restarts animation





share|improve this answer


























  • Apparently this breaks in javascript strict mode.

    – Adam
    Sep 5 '14 at 1:36











  • @Adam I don't see how this breaks strict mode. Do you have more details?

    – feklee
    Sep 8 '14 at 13:45


















1



















You need to recreate your element.



function resetAnimation(jqNode) 
var clone = jqNode.clone();
jqNode.after( clone );
jqNode.remove();
jqNode[0] = clone[0];






share|improve this answer


























  • It's a very useful method to reset animations also. Thanks.

    – sentenza
    Nov 11 '16 at 13:25


















0



















Try using this just after you apply the animation - given that "e" is your animated element:



e.outerHTML = e.outerHTML;





share|improve this answer

































    0



















    You definitely have to remove class that contains animation and then add it again. It should also work without .offsetWidth . It worked for me. So



    $('#id').removeClass('animationClass');
    $('#id').addClass('animationClass'); // starts animation again


    should do the trick.






    share|improve this answer

































      0



















      way to trigger a reflow:



       element.classList.remove("class");
      element.scrollBy(0, 0);
      element.classList.add("class");


      works in strict mode!
      doesn't require a write operation on a read-only value!
      doesn't require a whole new function!
      one line and go! :)






      share|improve this answer



























        Your Answer






        StackExchange.ifUsing("editor", function ()
        StackExchange.using("externalEditor", function ()
        StackExchange.using("snippets", function ()
        StackExchange.snippets.init();
        );
        );
        , "code-snippets");

        StackExchange.ready(function()
        var channelOptions =
        tags: "".split(" "),
        id: "1"
        ;
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function()
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled)
        StackExchange.using("snippets", function()
        createEditor();
        );

        else
        createEditor();

        );

        function createEditor()
        StackExchange.prepareEditor(
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: true,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: 10,
        bindNavPrevention: true,
        postfix: "",
        imageUploader:
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        ,
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        );



        );














        draft saved

        draft discarded
















        StackExchange.ready(
        function ()
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f16050914%2fcss-animation-doesnt-restart-when-resetting-class%23new-answer', 'question_page');

        );

        Post as a guest















        Required, but never shown


























        7 Answers
        7






        active

        oldest

        votes








        7 Answers
        7






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        25



















        The problem is that, even though you remove and then re-apply the animated class, you do this in the course of a single, blocking function. When your function exits, it appears to the rendering engine that nothing has changed.



        One solution (the one that you chose), is to clone the element and destroy the original. This is fine, but if you had any event bindings to the original element (i think) they they will be destroyed too.



        Another approach is to remove the animated class from the element, and then wrap the code that re-applies the class inside of a setTimeout() call with a very small delay, e.g.



        $('#holder').removeClass('shader');
        setTimeout(
        function()$('#holder').addClass('shader')
        , 1);


        I've tweaked your jsfiddle to use this approach: http://jsfiddle.net/HuFBN/7/






        share|improve this answer





















        • 2





          This is the correct answer. Extra points go for explaining why this hack is needed ("When your function exits, it appears to the rendering engine that nothing has changed").

          – Agoston Horvath
          Jul 10 '14 at 9:47











        • This worked for me. What I also like about it this too is that you can easily adjust the delay in this approach as when it should start again. thanks!

          – klewis
          Nov 10 '15 at 17:18















        25



















        The problem is that, even though you remove and then re-apply the animated class, you do this in the course of a single, blocking function. When your function exits, it appears to the rendering engine that nothing has changed.



        One solution (the one that you chose), is to clone the element and destroy the original. This is fine, but if you had any event bindings to the original element (i think) they they will be destroyed too.



        Another approach is to remove the animated class from the element, and then wrap the code that re-applies the class inside of a setTimeout() call with a very small delay, e.g.



        $('#holder').removeClass('shader');
        setTimeout(
        function()$('#holder').addClass('shader')
        , 1);


        I've tweaked your jsfiddle to use this approach: http://jsfiddle.net/HuFBN/7/






        share|improve this answer





















        • 2





          This is the correct answer. Extra points go for explaining why this hack is needed ("When your function exits, it appears to the rendering engine that nothing has changed").

          – Agoston Horvath
          Jul 10 '14 at 9:47











        • This worked for me. What I also like about it this too is that you can easily adjust the delay in this approach as when it should start again. thanks!

          – klewis
          Nov 10 '15 at 17:18













        25















        25











        25









        The problem is that, even though you remove and then re-apply the animated class, you do this in the course of a single, blocking function. When your function exits, it appears to the rendering engine that nothing has changed.



        One solution (the one that you chose), is to clone the element and destroy the original. This is fine, but if you had any event bindings to the original element (i think) they they will be destroyed too.



        Another approach is to remove the animated class from the element, and then wrap the code that re-applies the class inside of a setTimeout() call with a very small delay, e.g.



        $('#holder').removeClass('shader');
        setTimeout(
        function()$('#holder').addClass('shader')
        , 1);


        I've tweaked your jsfiddle to use this approach: http://jsfiddle.net/HuFBN/7/






        share|improve this answer














        The problem is that, even though you remove and then re-apply the animated class, you do this in the course of a single, blocking function. When your function exits, it appears to the rendering engine that nothing has changed.



        One solution (the one that you chose), is to clone the element and destroy the original. This is fine, but if you had any event bindings to the original element (i think) they they will be destroyed too.



        Another approach is to remove the animated class from the element, and then wrap the code that re-applies the class inside of a setTimeout() call with a very small delay, e.g.



        $('#holder').removeClass('shader');
        setTimeout(
        function()$('#holder').addClass('shader')
        , 1);


        I've tweaked your jsfiddle to use this approach: http://jsfiddle.net/HuFBN/7/







        share|improve this answer













        share|improve this answer




        share|improve this answer










        answered May 17 '13 at 23:42









        NobodyManNobodyMan

        2,1222 gold badges26 silver badges35 bronze badges




        2,1222 gold badges26 silver badges35 bronze badges










        • 2





          This is the correct answer. Extra points go for explaining why this hack is needed ("When your function exits, it appears to the rendering engine that nothing has changed").

          – Agoston Horvath
          Jul 10 '14 at 9:47











        • This worked for me. What I also like about it this too is that you can easily adjust the delay in this approach as when it should start again. thanks!

          – klewis
          Nov 10 '15 at 17:18












        • 2





          This is the correct answer. Extra points go for explaining why this hack is needed ("When your function exits, it appears to the rendering engine that nothing has changed").

          – Agoston Horvath
          Jul 10 '14 at 9:47











        • This worked for me. What I also like about it this too is that you can easily adjust the delay in this approach as when it should start again. thanks!

          – klewis
          Nov 10 '15 at 17:18







        2




        2





        This is the correct answer. Extra points go for explaining why this hack is needed ("When your function exits, it appears to the rendering engine that nothing has changed").

        – Agoston Horvath
        Jul 10 '14 at 9:47





        This is the correct answer. Extra points go for explaining why this hack is needed ("When your function exits, it appears to the rendering engine that nothing has changed").

        – Agoston Horvath
        Jul 10 '14 at 9:47













        This worked for me. What I also like about it this too is that you can easily adjust the delay in this approach as when it should start again. thanks!

        – klewis
        Nov 10 '15 at 17:18





        This worked for me. What I also like about it this too is that you can easily adjust the delay in this approach as when it should start again. thanks!

        – klewis
        Nov 10 '15 at 17:18













        4



















        I think I figured it out. According to this, css animation can't get applied to the same node twice (even if you have a different animation!). So I had to clone the node, remove the original, and add back the cloned node.






        share|improve this answer


























        • Different animations certainly work in Chrome.

          – dmi3y
          May 23 '17 at 17:20















        4



















        I think I figured it out. According to this, css animation can't get applied to the same node twice (even if you have a different animation!). So I had to clone the node, remove the original, and add back the cloned node.






        share|improve this answer


























        • Different animations certainly work in Chrome.

          – dmi3y
          May 23 '17 at 17:20













        4















        4











        4









        I think I figured it out. According to this, css animation can't get applied to the same node twice (even if you have a different animation!). So I had to clone the node, remove the original, and add back the cloned node.






        share|improve this answer














        I think I figured it out. According to this, css animation can't get applied to the same node twice (even if you have a different animation!). So I had to clone the node, remove the original, and add back the cloned node.







        share|improve this answer













        share|improve this answer




        share|improve this answer










        answered Apr 17 '13 at 5:19









        DiscombobulousDiscombobulous

        7731 gold badge9 silver badges20 bronze badges




        7731 gold badge9 silver badges20 bronze badges















        • Different animations certainly work in Chrome.

          – dmi3y
          May 23 '17 at 17:20

















        • Different animations certainly work in Chrome.

          – dmi3y
          May 23 '17 at 17:20
















        Different animations certainly work in Chrome.

        – dmi3y
        May 23 '17 at 17:20





        Different animations certainly work in Chrome.

        – dmi3y
        May 23 '17 at 17:20











        4



















        According to a 2011 article on css-tricks.com, triggering a reflow in between removing and adding the class will restart the animation. Example (verbose):



        $('#holder').removeClass('shader');
        $('#holder').offsetWidth = $('#holder').offsetWidth; // triggers reflow
        $('#holder').addClass('shader'); // restarts animation





        share|improve this answer


























        • Apparently this breaks in javascript strict mode.

          – Adam
          Sep 5 '14 at 1:36











        • @Adam I don't see how this breaks strict mode. Do you have more details?

          – feklee
          Sep 8 '14 at 13:45















        4



















        According to a 2011 article on css-tricks.com, triggering a reflow in between removing and adding the class will restart the animation. Example (verbose):



        $('#holder').removeClass('shader');
        $('#holder').offsetWidth = $('#holder').offsetWidth; // triggers reflow
        $('#holder').addClass('shader'); // restarts animation





        share|improve this answer


























        • Apparently this breaks in javascript strict mode.

          – Adam
          Sep 5 '14 at 1:36











        • @Adam I don't see how this breaks strict mode. Do you have more details?

          – feklee
          Sep 8 '14 at 13:45













        4















        4











        4









        According to a 2011 article on css-tricks.com, triggering a reflow in between removing and adding the class will restart the animation. Example (verbose):



        $('#holder').removeClass('shader');
        $('#holder').offsetWidth = $('#holder').offsetWidth; // triggers reflow
        $('#holder').addClass('shader'); // restarts animation





        share|improve this answer














        According to a 2011 article on css-tricks.com, triggering a reflow in between removing and adding the class will restart the animation. Example (verbose):



        $('#holder').removeClass('shader');
        $('#holder').offsetWidth = $('#holder').offsetWidth; // triggers reflow
        $('#holder').addClass('shader'); // restarts animation






        share|improve this answer













        share|improve this answer




        share|improve this answer










        answered Jun 6 '14 at 15:04









        fekleefeklee

        6,6948 gold badges43 silver badges64 bronze badges




        6,6948 gold badges43 silver badges64 bronze badges















        • Apparently this breaks in javascript strict mode.

          – Adam
          Sep 5 '14 at 1:36











        • @Adam I don't see how this breaks strict mode. Do you have more details?

          – feklee
          Sep 8 '14 at 13:45

















        • Apparently this breaks in javascript strict mode.

          – Adam
          Sep 5 '14 at 1:36











        • @Adam I don't see how this breaks strict mode. Do you have more details?

          – feklee
          Sep 8 '14 at 13:45
















        Apparently this breaks in javascript strict mode.

        – Adam
        Sep 5 '14 at 1:36





        Apparently this breaks in javascript strict mode.

        – Adam
        Sep 5 '14 at 1:36













        @Adam I don't see how this breaks strict mode. Do you have more details?

        – feklee
        Sep 8 '14 at 13:45





        @Adam I don't see how this breaks strict mode. Do you have more details?

        – feklee
        Sep 8 '14 at 13:45











        1



















        You need to recreate your element.



        function resetAnimation(jqNode) 
        var clone = jqNode.clone();
        jqNode.after( clone );
        jqNode.remove();
        jqNode[0] = clone[0];






        share|improve this answer


























        • It's a very useful method to reset animations also. Thanks.

          – sentenza
          Nov 11 '16 at 13:25















        1



















        You need to recreate your element.



        function resetAnimation(jqNode) 
        var clone = jqNode.clone();
        jqNode.after( clone );
        jqNode.remove();
        jqNode[0] = clone[0];






        share|improve this answer


























        • It's a very useful method to reset animations also. Thanks.

          – sentenza
          Nov 11 '16 at 13:25













        1















        1











        1









        You need to recreate your element.



        function resetAnimation(jqNode) 
        var clone = jqNode.clone();
        jqNode.after( clone );
        jqNode.remove();
        jqNode[0] = clone[0];






        share|improve this answer














        You need to recreate your element.



        function resetAnimation(jqNode) 
        var clone = jqNode.clone();
        jqNode.after( clone );
        jqNode.remove();
        jqNode[0] = clone[0];







        share|improve this answer













        share|improve this answer




        share|improve this answer










        answered Oct 9 '15 at 19:24









        Deni35Deni35

        2,1081 gold badge17 silver badges24 bronze badges




        2,1081 gold badge17 silver badges24 bronze badges















        • It's a very useful method to reset animations also. Thanks.

          – sentenza
          Nov 11 '16 at 13:25

















        • It's a very useful method to reset animations also. Thanks.

          – sentenza
          Nov 11 '16 at 13:25
















        It's a very useful method to reset animations also. Thanks.

        – sentenza
        Nov 11 '16 at 13:25





        It's a very useful method to reset animations also. Thanks.

        – sentenza
        Nov 11 '16 at 13:25











        0



















        Try using this just after you apply the animation - given that "e" is your animated element:



        e.outerHTML = e.outerHTML;





        share|improve this answer






























          0



















          Try using this just after you apply the animation - given that "e" is your animated element:



          e.outerHTML = e.outerHTML;





          share|improve this answer




























            0















            0











            0









            Try using this just after you apply the animation - given that "e" is your animated element:



            e.outerHTML = e.outerHTML;





            share|improve this answer














            Try using this just after you apply the animation - given that "e" is your animated element:



            e.outerHTML = e.outerHTML;






            share|improve this answer













            share|improve this answer




            share|improve this answer










            answered Apr 29 '15 at 15:14









            ElDoRado1239ElDoRado1239

            2,6912 gold badges12 silver badges12 bronze badges




            2,6912 gold badges12 silver badges12 bronze badges
























                0



















                You definitely have to remove class that contains animation and then add it again. It should also work without .offsetWidth . It worked for me. So



                $('#id').removeClass('animationClass');
                $('#id').addClass('animationClass'); // starts animation again


                should do the trick.






                share|improve this answer






























                  0



















                  You definitely have to remove class that contains animation and then add it again. It should also work without .offsetWidth . It worked for me. So



                  $('#id').removeClass('animationClass');
                  $('#id').addClass('animationClass'); // starts animation again


                  should do the trick.






                  share|improve this answer




























                    0















                    0











                    0









                    You definitely have to remove class that contains animation and then add it again. It should also work without .offsetWidth . It worked for me. So



                    $('#id').removeClass('animationClass');
                    $('#id').addClass('animationClass'); // starts animation again


                    should do the trick.






                    share|improve this answer














                    You definitely have to remove class that contains animation and then add it again. It should also work without .offsetWidth . It worked for me. So



                    $('#id').removeClass('animationClass');
                    $('#id').addClass('animationClass'); // starts animation again


                    should do the trick.







                    share|improve this answer













                    share|improve this answer




                    share|improve this answer










                    answered Jun 10 '17 at 23:03









                    M BrankM Brank

                    1591 gold badge1 silver badge5 bronze badges




                    1591 gold badge1 silver badge5 bronze badges
























                        0



















                        way to trigger a reflow:



                         element.classList.remove("class");
                        element.scrollBy(0, 0);
                        element.classList.add("class");


                        works in strict mode!
                        doesn't require a write operation on a read-only value!
                        doesn't require a whole new function!
                        one line and go! :)






                        share|improve this answer






























                          0



















                          way to trigger a reflow:



                           element.classList.remove("class");
                          element.scrollBy(0, 0);
                          element.classList.add("class");


                          works in strict mode!
                          doesn't require a write operation on a read-only value!
                          doesn't require a whole new function!
                          one line and go! :)






                          share|improve this answer




























                            0















                            0











                            0









                            way to trigger a reflow:



                             element.classList.remove("class");
                            element.scrollBy(0, 0);
                            element.classList.add("class");


                            works in strict mode!
                            doesn't require a write operation on a read-only value!
                            doesn't require a whole new function!
                            one line and go! :)






                            share|improve this answer














                            way to trigger a reflow:



                             element.classList.remove("class");
                            element.scrollBy(0, 0);
                            element.classList.add("class");


                            works in strict mode!
                            doesn't require a write operation on a read-only value!
                            doesn't require a whole new function!
                            one line and go! :)







                            share|improve this answer













                            share|improve this answer




                            share|improve this answer










                            answered Mar 28 at 22:04









                            TwistedTamarinTwistedTamarin

                            611 bronze badge




                            611 bronze badge































                                draft saved

                                draft discarded















































                                Thanks for contributing an answer to Stack Overflow!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid


                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.

                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function ()
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f16050914%2fcss-animation-doesnt-restart-when-resetting-class%23new-answer', 'question_page');

                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown









                                Popular posts from this blog

                                Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

                                SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

                                은진 송씨 목차 역사 본관 분파 인물 조선 왕실과의 인척 관계 집성촌 항렬자 인구 같이 보기 각주 둘러보기 메뉴은진 송씨세종실록 149권, 지리지 충청도 공주목 은진현