Heim > Web-Frontend > CSS-Tutorial > Wie kann ich die CSS3-Animation nur aktivieren, wenn ein Element in die Ansicht gescrollt wird?

Wie kann ich die CSS3-Animation nur aktivieren, wenn ein Element in die Ansicht gescrollt wird?

Linda Hamilton
Freigeben: 2024-12-06 03:14:10
Original
645 Leute haben es durchsucht

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

CSS3-Animation aktivieren, wenn der Inhalt in die Ansicht scrollt

Die Abfrage wirft ein Problem auf, bei dem die Animation für ein Balkendiagramm beim Laden der Seite aktiviert wird, obwohl das Diagramm außerhalb positioniert ist. Bildschirm. Ziel ist es, die Animation nur dann auszulösen, wenn der Betrachter nach unten scrollt und das Diagramm sichtbar wird.

Scroll-Ereignisse erfassen

Um dies zu erreichen, können JavaScript oder jQuery zur Überwachung von Scroll-Ereignissen und verwendet werden Bestimmen Sie, wann das Element in das Ansichtsfenster gelangt. Sobald es erkannt wird, kann die Animation initiiert werden.

Im folgenden Code wird JavaScript verwendet, um dem Element die „Start“-Klasse hinzuzufügen, wenn es sichtbar wird, wodurch die Animation ausgelöst wird:

<div class="bar">
    <div class="level eighty">80%</div>
</div>
Nach dem Login kopieren
.eighty.start {
    width: 0px;
    background: #aae0aa;
    animation: eighty 2s ease-out forwards;
}
Nach dem Login kopieren
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();
});
Nach dem Login kopieren

Durch die Implementierung dieser Lösung wird die Animation nur aktiviert, wenn das Balkendiagramm in die Ansicht gescrollt wird, was für ein ansprechenderes Benutzererlebnis sorgt.

Das obige ist der detaillierte Inhalt vonWie kann ich die CSS3-Animation nur aktivieren, wenn ein Element in die Ansicht gescrollt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage