Rumah > hujung hadapan web > tutorial css > Bagaimana untuk Mencetuskan Animasi CSS3 pada Tatal ke Paparan?

Bagaimana untuk Mencetuskan Animasi CSS3 pada Tatal ke Paparan?

Linda Hamilton
Lepaskan: 2025-01-01 05:41:09
asal
143 orang telah melayarinya

How to Trigger CSS3 Animations on Scroll into View?

Cara Mengaktifkan Animasi CSS3 apabila Kandungan Tatal ke Paparan

Masalah

Anda menggunakan animasi CSS3 untuk menghidupkan carta bar, tetapi animasi bermula apabila halaman dimuatkan. Memandangkan carta bar diletakkan di luar skrin disebabkan kandungan sebelumnya, animasi selesai pada masa pengguna menatal ke bawah untuk melihatnya.

Penyelesaian: Tangkap Peristiwa Tatal

Kuncinya terletak pada menangkap tatal acara menggunakan JavaScript atau jQuery. Dengan setiap tatal, kod akan menyemak sama ada elemen carta bar berada dalam port pandangan. Sebaik sahaja ia mengesan keterlihatan elemen, ia mencetuskan animasi dengan menambahkan kelas "mula" yang memulakan animasi.

Pelaksanaan Kod

HTML

<div class="bar">
    <div class="level eighty">80%</div>
</div>
Salin selepas log masuk

CSS

.eighty.start {
    width: 0px;
    background: #aae0aa;
    -webkit-animation: eighty 2s ease-out forwards;
       -moz-animation: eighty 2s ease-out forwards;
        -ms-animation: eighty 2s ease-out forwards;
         -o-animation: eighty 2s ease-out forwards;
            animation: eighty 2s ease-out forwards;
}
Salin selepas log masuk

jQuery

function isElementInViewport(elem) {
    var $elem = $(elem);

    // Get scroll position
    var viewportTop = $(scrollElem).scrollTop();
    var viewportBottom = viewportTop + $(window).height();

    // Get element position
    var elemTop = Math.round( $elem.offset().top );
    var elemBottom = elemTop + $elem.height();

    return ((elemTop < viewportBottom) && (elemBottom > viewportTop));
}

function checkAnimation() {
    var $elem = $('.bar .level');

    // Prevent re-animation
    if ($elem.hasClass('start')) return;

    if (isElementInViewport($elem)) {
        $elem.addClass('start');
    }
}

// Capture scroll events
$(window).scroll(function(){
    checkAnimation();
});
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mencetuskan Animasi CSS3 pada Tatal ke Paparan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan