0Pricing
React Academy · Pelajaran

IntersectionObserver untuk Efek yang Dipicu Guliran

Gunakan IntersectionObserver di dalam useEffect untuk memicu animasi, pemuatan malas, dan guliran tak terbatas.

IntersectionObserver untuk Efek yang Dipicu Guliran adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Fungsi IntersectionObserver

API IntersectionObserver secara efisien memantau apakah satu atau beberapa elemen masuk ke atau keluar dari area pandang peramban (atau elemen leluhur tertentu). Berbeda dari pendengar gulir yang dipicu pada setiap piksel, pengamat hanya memanggil fungsi panggilan balik ketika elemen melewati ambang batas, sehingga kinerjanya jauh lebih baik untuk efek berbasis gulir.

Panggilan Balik dan Entri Pengamat

Fungsi panggilan balik menerima array objek IntersectionObserverEntry, satu untuk setiap elemen yang diamati. Setiap entri memiliki boolean isIntersecting (bernilai benar ketika terlihat) dan angka intersectionRatio antara 0 dan 1 (pecahan elemen yang sedang terlihat). Gunakan nilai-nilai ini untuk menentukan status visibilitas.

Membuat Pengamat dalam useEffect

Buat pengamat di dalam useEffect dan panggil observer.observe(ref.current) untuk mulai memantau elemen. Ref harus dipasang pada elemen DOM yang ingin Anda lacak. Buat pengamat setelah komponen dipasang agar ref.current sudah terisi.

Pembersihan: unobserve dan disconnect

Dalam fungsi pembersihan useEffect, panggil observer.unobserve(element) untuk berhenti memantau elemen tertentu, atau observer.disconnect() untuk menghentikan semua pemantauan. Jika pembersihan dilupakan, pengamat akan tetap ada setelah komponen dilepas, sehingga berpotensi menyebabkan kesalahan atau kebocoran memori.

Opsi Ambang Batas

Opsi threshold mengatur kapan fungsi panggilan balik dipicu. Nilai 0 memicu fungsi segera setelah satu piksel pun dari elemen terlihat. Nilai 1 hanya memicu fungsi ketika elemen terlihat sepenuhnya. Anda juga dapat memberikan array seperti [0, 0.5, 1] untuk menerima panggilan balik pada beberapa tingkat visibilitas.

Opsi rootMargin

rootMargin memperluas atau mempersempit area perpotongan efektif menggunakan sintaksis yang menyerupai CSS: '100px 0px' memicu 100px sebelum elemen memasuki area pandang. Gunakan '-100px' agar pemicuan hanya terjadi ketika elemen berada 100px di dalam area pandang. Cara ini berguna untuk memuat lebih awal atau menganimasikan elemen sebelum terlihat sepenuhnya.

Pemuatan Gambar Sesuai Kebutuhan

Untuk memuat gambar sesuai kebutuhan, tetapkan atribut data-src, bukan src, pada awalnya. Saat pengamat terpicu dengan isIntersecting: true, salin data-src ke src untuk memicu permintaan jaringan. Kemudian panggil observer.unobserve(entry.target) karena gambar hanya perlu dimuat sekali.

Animasi yang Dipicu Saat Menggulir

Untuk animasi kemunculan perlahan, tambahkan kelas CSS ketika isIntersecting menjadi true: element.classList.add('visible'). Tentukan transisi di CSS: .card { opacity: 0; transform: translateY(20px); transition: opacity 0.4s, transform 0.4s; } dan .card.visible { opacity: 1; transform: none; }. Pengamat menjalankan animasi secara efisien.

Analitik: Melacak Konten yang Dilihat

IntersectionObserver ideal untuk pelacakan tampilan. Saat elemen dengan atribut data-analytics-id menjadi terlihat dan mencapai ambang 0,5, picu peristiwa analitik. Cara ini mengukur secara akurat bagian konten mana yang benar-benar dibaca pengguna, jauh lebih andal daripada persentase kedalaman pengguliran sederhana.

Mengamati Beberapa Elemen

Satu instans IntersectionObserver dapat mengamati beberapa elemen dengan memanggil observer.observe(element) untuk setiap elemen. Semua elemen yang diamati menggunakan panggilan balik dan opsi yang sama. Gunakan entry.target di dalam panggilan balik untuk mengidentifikasi elemen mana yang memicu notifikasi.

Membangun Pengait useInView

Pengait useInView yang dapat digunakan kembali mengembalikan [ref, inView]. Pasang ref ke elemen apa pun dan baca inView untuk mengetahui apakah elemen tersebut sedang terlihat. Pengait ini menerima objek options untuk ambang dan rootMargin. Abstraksi ini membuat efek pengguliran bersifat deklaratif di komponen mana pun.

Ambang IntersectionObserver

Apa arti ambang IntersectionObserver sebesar 0?

Ringkasan Pelajaran: IntersectionObserver

IntersectionObserver melacak visibilitas elemen secara efisien menggunakan isIntersecting dan intersectionRatio. Selalu lakukan pembersihan dengan berhenti mengamati atau memutuskan koneksi. Gunakan ambang untuk mengatur titik pemicu dan rootMargin untuk memperluas zona deteksi. Terapkan cara ini untuk pemuatan sesuai kebutuhan, animasi, dan pelacakan analitik.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “IntersectionObserver untuk Efek yang Dipicu Guliran” gratis?

Ya — teks lengkap “IntersectionObserver untuk Efek yang Dipicu Guliran” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “IntersectionObserver untuk Efek yang Dipicu Guliran”?

Gunakan IntersectionObserver di dalam useEffect untuk memicu animasi, pemuatan malas, dan guliran tak terbatas. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “IntersectionObserver untuk Efek yang Dipicu Guliran” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Clipboard API: Menyalin dan Menempel di React
  2. Geolocation API dalam Komponen React
  3. Notifications API dan Penanganan Izin
  4. IntersectionObserver untuk Efek yang Dipicu Guliran
← Kembali ke React Academy