Maison > interface Web > tutoriel CSS > Comment redémarrer une animation CSS WebKit à l'aide de JavaScript ?

Comment redémarrer une animation CSS WebKit à l'aide de JavaScript ?

DDD
Libérer: 2024-11-29 15:39:15
original
468 Les gens l'ont consulté

How to Restart a WebKit CSS Animation Using JavaScript?

Comment relancer une animation CSS WebKit via JavaScript

Cette question aborde le problème du redéclenchement d'une animation CSS à l'aide de JavaScript. La règle d'animation existante "@-webkit-keyframes shake" définit un effet de tremblement, mais les tentatives ultérieures pour l'activer à nouveau via JavaScript s'avèrent infructueuses.

La solution fournie exploite l'événement "animationEnd", en particulier "webkitAnimationEnd" pour Navigateurs WebKit. Lorsque cet événement est déclenché, il indique la fin de l'animation.

Pour relancer l'animation, un écouteur d'événement est ajouté à l'élément pour l'événement "webkitAnimationEnd". À la réception de cet événement, la propriété de style "webkitAnimationName" de l'élément est effacée, réinitialisant ainsi l'animation.

Exemple (Plain Vanilla JavaScript) :

var element = document.getElementById('box');

element.addEventListener('webkitAnimationEnd', function(){
    this.style.webkitAnimationName = '';
}, false);

document.getElementById('button').onclick = function(){
    element.style.webkitAnimationName = 'shake';
    // You may want to prevent default action here.
};
Copier après la connexion

Exemple (jQuery):

var $element = $('#box').bind('webkitAnimationEnd', function(){
    this.style.webkitAnimationName = '';
});

$('#button').click(function(){
    $element.css('webkitAnimationName', 'shake');
    // You may want to prevent default action here.
});
Copier après la connexion

Prise en charge de plusieurs navigateurs :

Pour la prise en charge de plusieurs navigateurs, l'objet "css3AnimationSupport" peut être utilisé pour détecter CSS propriétés de transition, de transformation et d'animation prises en charge par différents navigateurs.

var css3AnimationSupport = (function(){
    var div = document.createElement('div'),
        divStyle = div.style;

    return {
        transition: (function(){
            return divStyle.MozTransition     === ''? {name: 'MozTransition'   , end: 'transitionend'} :
                (divStyle.MsTransition     === ''? {name: 'MsTransition'    , end: 'msTransitionend'} :
                (divStyle.WebkitTransition === ''? {name: 'WebkitTransition', end: 'webkitTransitionEnd'} :
                (divStyle.OTransition      === ''? {name: 'OTransition'     , end: 'oTransitionEnd'} :
                (divStyle.transition       === ''? {name: 'transition'      , end: 'transitionend'} :
                false))));
        })()
        // ... Other detections omitted for brevity
    };
}());
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal