javascripthtmlcssanimationcontinuous

CSS animation active doesn't continue?


I've been trying to learn css animations and I'm starting to get a grip on them but I'm having an issue an animation effect. I have an animation class assigned to a section that is a download button when I click it the animation plays for the extent of the click, if i click and hold it plays the whole animation. I want the animation to play all the way through on on click, not a click and hold.

Heres the Html section the class is applied to:

<a href="software/ASC.exe">
                        <section id="download" class="animated" title="Download ASC">
                            Download
                        </section>
                    </a>

Here is the CSS animation class:

.animated { 

}
.animated:active {
    -webkit-animation:fadeOutUp 2s;
    -moz-animation:fadeOutUp 2s;
    -o-animation:fadeOutUp 2s;
    -ms-animation:fadeOutUp 2s;
    animation:fadeOutUp 2s;
    box-shadow:3px 1px 20px 4px #0099CC;
}

@-webkit-keyframes fadeOutUp {
0% {
    opacity: 1;
    -webkit-transform: translateY(0);
}

100% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
}
}
@-moz-keyframes fadeOutUp {
0% {
    opacity: 1;
    -moz-transform: translateY(0);
}

100% {
    opacity: 0;
    -moz-transform: translateY(-20px);
}
}
@-o-keyframes fadeOutUp {
0% {
    opacity: 1;
    -o-transform: translateY(0);
}

100% {
    opacity: 0;
    -o-transform: translateY(-20px);
}
}
@keyframes fadeOutUp {
0% {
    opacity: 1;
    transform: translateY(0);
}

100% {
    opacity: 0;
    transform: translateY(-20px);
}
}

.fadeOutUp {
-webkit-animation-name: fadeOutUp;
-moz-animation-name: fadeOutUp;
-o-animation-name: fadeOutUp;
animation-name: fadeOutUp;
}

Any help is appreciated!


Solution

  • You could do it with jQuery

    DEMO http://jsfiddle.net/kevinPHPkevin/Uj5gC/1/

    $("#download").click(function () {
        $(this).addClass("animated1");
    });
    

    To reset the animation just remove the class after 2 seconds

    DEMO http://jsfiddle.net/kevinPHPkevin/Uj5gC/4/

     $("#download").click(function () {
        $(this).addClass("animated1");
            setInterval(function () {
        $("#download").removeClass("animated1");
        }, 2000);
    
    });
    

    ** EDITED**

    Just for the challenge, here's a CSS only option using :target

    DEMO http://jsfiddle.net/kevinPHPkevin/Uj5gC/2/