Rumah > hujung hadapan web > tutorial css > Bagaimana Mencetuskan Animasi CSS3 Hanya Apabila Elemen Ditatal ke Paparan?

Bagaimana Mencetuskan Animasi CSS3 Hanya Apabila Elemen Ditatal ke Paparan?

Barbara Streisand
Lepaskan: 2024-11-30 20:08:18
asal
458 orang telah melayarinya

How to Trigger CSS3 Animation Only When an Element is Scrolled into View?

Mencetuskan Animasi CSS3 pada Tatal

Masalah:

Carta bar animasi dimuatkan sebelum kandungan ditatal ke paparan, menghasilkan terlepas animasi.

Penyelesaian:

Untuk mengaktifkan animasi CSS3 semasa tatal ke paparan:

1. Tangkap Acara Tatal

Laksanakan pendengar acara JavaScript atau jQuery yang memantau acara tatal.

2. Semak Keterlihatan Elemen

Untuk setiap acara tatal, semak sama ada elemen (carta bar) boleh dilihat dalam port pandangan pengguna.

3. Mulakan Animasi

Setelah elemen kelihatan (cth., apabila isElementInViewport()) kembali benar), mulakan animasi dengan menggunakan kelas CSS yang sesuai (cth., "start") .

Contoh 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) {
    // Calculate element and viewport positions
    // ...

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

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

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

    if (isElementInViewport($elem)) {
        // Start the animation
        $elem.addClass('start');
    }
}

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

Atas ialah kandungan terperinci Bagaimana Mencetuskan Animasi CSS3 Hanya Apabila Elemen Ditatal 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