Maison > interface Web > tutoriel CSS > le corps du texte

Comment animer Box-Shadow avec jQuery : animation directe ou CSS ?

Mary-Kate Olsen
Libérer: 2024-10-31 11:21:29
original
1061 Les gens l'ont consulté

How to Animate Box-Shadow with jQuery: Direct or CSS Animation?

Comment animer correctement Box-Shadow avec jQuery

Comprendre le problème

La propriété box-shadow, qui ajoute de la profondeur visuelle aux éléments, peut être difficile à animer avec jQuery. L'approche standard consiste à modifier séparément les facettes individuelles de l'ombre (telles que la couleur, le décalage, le rayon de flou et le rayon de propagation). Cependant, cela peut être complexe et sujet aux erreurs.

Solution directe

Une solution pratique consiste à utiliser le plugin jQuery d'Edwin Martin pour l'animation d'ombres. Il étend de manière transparente la méthode d'animation, vous permettant de spécifier "boxShadow" comme propriété animée. Chaque aspect de l'ombre, y compris la couleur, les décalages et les rayons, sera animé en conséquence.

<code class="js">$(element).animate({ 
    boxShadow: "0px 0px 5px 3px hsla(100, 70%, 60%, 0.8)"
});</code>
Copier après la connexion

Approche alternative : animations CSS

Vous pouvez également envisager d'utiliser des animations CSS pour contrôler la boîte. effet d'ombre. Cette approche conserve les informations de style dans vos feuilles de style et évite les problèmes de spécificité potentiels.

<code class="css">@keyframes shadowPulse {
    0% {
        box-shadow: 0px 0px 10px 0px hsla(0, 0%, 0%, 1);
    }

    100% {
        box-shadow: 0px 0px 5px 0px hsla(0, 0%, 0%, 0);
    }
}

.shadow-pulse {
    animation-name: shadowPulse;
    animation-duration: 1.5s;
    animation-iteration-count: 1;
    animation-timing-function: linear;
}</code>
Copier après la connexion

Une fois l'animation CSS définie, vous pouvez l'appliquer à l'aide de JavaScript ou de jQuery. Une fois l'animation terminée, l'événement animationend peut être utilisé pour déclencher des actions ultérieures.

element.classList.add('shadow-pulse');
element.addEventListener('animationend', event => {  
    element.classList.remove('shadow-pulse');
    // do something else...
});
Copier après la connexion
$(element).addClass('shadow-pulse');
$(element).on('animationend', function(){    
    $(element).removeClass('shadow-pulse');
    // do something else...
});
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal