Rumah > hujung hadapan web > tutorial css > Bagaimanakah Saya Boleh Mencetuskan Animasi CSS3 Hanya Apabila Elemen Tatal ke Paparan?

Bagaimanakah Saya Boleh Mencetuskan Animasi CSS3 Hanya Apabila Elemen Tatal ke Paparan?

Mary-Kate Olsen
Lepaskan: 2024-12-09 00:54:11
asal
742 orang telah melayarinya

How Can I Trigger CSS3 Animations Only When an Element Scrolls into View?

Mengaktifkan Animasi CSS3 Apabila Kandungan Ditatal ke Paparan

Apabila kedudukan elemen melangkaui port pandangan, ia menjadi tersembunyi daripada pandangan. Untuk mengoptimumkan prestasi, animasi CSS3 boleh dimulakan hanya apabila elemen muncul dalam port pandangan. Ini amat berguna untuk elemen yang diletakkan jauh di bawah halaman dengan kandungan yang besar di atasnya.

Untuk mencapainya, kami menggunakan JavaScript atau jQuery untuk menangkap acara tatal. Sebaik sahaja peristiwa tatal dicetuskan, kod menyemak sama ada elemen yang disasarkan telah menatal ke dalam port pandangan. Jika ya, kelas petunjuk ditambahkan pada elemen, menggesa animasi untuk dimulakan.

Kod Pelaksanaan:

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);

    // Scroll position
    var viewportTop = $(window).scrollTop();
    var viewportBottom = viewportTop + $(window).height();

    // Element position
    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();
});
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetuskan Animasi CSS3 Hanya Apabila Elemen 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