Maison > interface Web > tutoriel CSS > Comment puis-je activer l'animation CSS3 uniquement lorsqu'un élément défile dans la vue ?

Comment puis-je activer l'animation CSS3 uniquement lorsqu'un élément défile dans la vue ?

Linda Hamilton
Libérer: 2024-12-06 03:14:10
original
645 Les gens l'ont consulté

How Can I Activate CSS3 Animation Only When an Element Scrolls into View?

Activer l'animation CSS3 lorsque le contenu défile dans la vue

La requête soulève un problème où l'animation d'un graphique à barres s'active lors du chargement de la page, bien que le graphique soit positionné hors- écran. L'objectif est de déclencher l'animation uniquement lorsque le spectateur fait défiler vers le bas et que le graphique apparaît.

Capturer les événements de défilement

Pour y parvenir, JavaScript ou jQuery peuvent être utilisés pour surveiller les événements de défilement et déterminer quand l'élément entre dans la fenêtre. Une fois détectée, l'animation peut être initiée.

Dans le code ci-dessous, JavaScript est utilisé pour ajouter la classe "start" à l'élément lorsqu'il devient visible, ce qui déclenche l'animation :

<div class="bar">
    <div class="level eighty">80%</div>
</div>
Copier après la connexion
.eighty.start {
    width: 0px;
    background: #aae0aa;
    animation: eighty 2s ease-out forwards;
}
Copier après la connexion
function isElementInViewport(elem) {
    var scrollElem = ((navigator.userAgent.toLowerCase().indexOf('webkit') != -1) ? 'body' : 'html');
    var viewportTop = $(scrollElem).scrollTop();
    var viewportBottom = viewportTop + $(window).height();
    var elemTop = $(elem).offset().top;
    var elemBottom = elemTop + $(elem).height();
    return ((elemTop < viewportBottom) && (elemBottom > viewportTop));
}

function checkAnimation() {
    var $elem = $('.bar .level');
    if ($elem.hasClass('start')) return;
    if (isElementInViewport($elem)) {
        $elem.addClass('start');
    }
}

$(window).scroll(function(){
    checkAnimation();
});
Copier après la connexion

En mettant en œuvre cette solution, l'animation ne s'activera que lorsque le graphique à barres défile, offrant ainsi une expérience utilisateur plus engageante.

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