Bagaimana untuk Menghidupkan Elemen Hanya Apabila Mereka berada di Viewport?

Barbara Streisand
Lepaskan: 2024-11-20 13:12:13
asal
183 orang telah melayarinya

How to Animate Elements Only When They're in Viewport?

Menghidupkan Elemen dalam Viewport Menggunakan Tatal Halaman

S: Bagaimanakah saya boleh memaparkan animasi pada halaman web hanya apabila elemen kelihatan dalam viewport semasa menatal?

J: Untuk mencapai ini, anda boleh menggunakan IntersectionObserver API.

Intersection Observer API

Intersection Observer API membolehkan anda memerhatikan persilangan antara elemen dan elemen induknya atau tempat pandang. Ia membolehkan anda mencetuskan peristiwa berdasarkan sama ada elemen itu boleh dilihat dalam port pandangan.

Berikut ialah contoh menggunakan API untuk menogol kelas yang boleh digunakan untuk mencetuskan animasi:

const inViewport = (entries, observer) => {
  entries.forEach(entry => {
    entry.target.classList.toggle("is-inViewport", entry.isIntersecting);
  });
};

const Obs = new IntersectionObserver(inViewport);
const obsOptions = {};

// Attach observer to every [data-inviewport] element:
document.querySelectorAll('[data-inviewport]').forEach(el => {
  Obs.observe(el, obsOptions);
});
Salin selepas log masuk

Anda kemudiannya boleh menambah peralihan atau animasi CSS pada elemen dengan kelas "is-inViewport" untuk menghidupkannya apabila ia muncul dalam viewport. Contohnya:

[data-inviewport] {
  width: 100px;
  height: 100px;
  background: #0bf;
  margin: 150vh 0;
}

/* inViewport */

[data-inviewport="scale-in"] {
  transition: 2s;
  transform: scale(0.1);
}
[data-inviewport="scale-in"].is-inViewport {
  transform: scale(1);
}

[data-inviewport="fade-rotate"] {
  transition: 2s;
  opacity: 0;
}
[data-inviewport="fade-rotate"].is-inViewport {
  transform: rotate(180deg);
  opacity: 1;
}
Salin selepas log masuk

Dengan kod ini, elemen dengan atribut [data-inviewport] akan mempunyai peralihan CSS. Apabila mereka memasuki viewport, kelas is-inViewport akan ditambahkan untuk mencetuskan animasi.

Atas ialah kandungan terperinci Bagaimana untuk Menghidupkan Elemen Hanya Apabila Mereka berada di Viewport?. 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