Buğra Şıkel
Javascript Intersection Observer Kullanımı

Merhabalar bu yazımızda javascript intersection observer API kullanımından bahsedeceğim. Javascript intersection observer nedir ve projelerimizde ne şekilde kullanabiliriz gibi soruları cevaplandırmaya çalışacağım.
Javascript Intersenction Observer API
Intersection Observer API, bir hedef öğenin bir üst öğeyle veya bir üst düzey belgenin görünüm penceresiyle kesişimindeki değişiklikleri gözlemlememizi sağlar. Hedeflediğimiz öğenin sayfada görünürlük durumunu izleyip, buna göre işlem yapmamıza olanak tanır. Örnek vermek gerekirse, hedeflediğimiz öğe sayfada görünür olmaya başladığında o öğeye bir animasyon ekleyebiliriz. Sınıfında bir değişiklik yapabiliriz. CSS ile müdahale edebiliriz, ya da bir videoyu oynatmaya başlatıp, görünürlükten çıktıktan sonra durdurabiliriz. Öncelikle intersection observer nasıl kullanılır onu göstereceğim ve daha sonrasında bir örnek ile kullanımını göstereceğim.
Genel kullanımımız için örnek kod bloğu aşağıdaki gibidir.
const target = document.getElementById('element');
const options = {
root: document.querySelector('#scrollArea'), //Hedefin görünürlüğünü kontrol ederken kullanacağımız scroll olan objemiz, yok ise varsayılan olarak en üst nesnesi kullanır.
rootMargin: '0px', // Hedefin görünürlüğünün mesafesini ayarlamak için kullanılır.
threshold: 0.8 // Hedefin görünürlüğünün yüzdesini ayarlar. Sadece float değer alır.
};
const observer = new IntersectionObserver(callback, options); // instance'ı oluşturuyoruz ve daha sonra bir hedef belirleyip observe() ile izlemeye başlayabiliriz.
observer.observe(target); // neyi izlemesi gerektiğini içine yazarak izlemeyi başlatıyoruz.
const video = document.getElementById('video'); // video id'li videomuzu tanımlıyoruz.
const callback = (entries) => {
if (entries[0].isIntersecting) { // eğer görünür olursa
video.play(); // videoyu oynat
}else { // görünür olmazsa
video.pause(); // videoyu durdur
}
};
const options = {
root:null, // en üst elemanı alacak
rootMargin:'0px',
threshold:0.9 // video %90 kadar görünür olduğunda bu işlemi yap
};
const observer = new IntersectionObserver(callback,options);
observer.observe(video);
Yukarıdaki işlemde videomuz %90 oranında görünür olduğunda oynatılmaya başlanacak ve görünürlüğü %90’ın altına düştüğünde durdurulacak. Javascript intersection observer kullanarak projelerinizde bir çok şey yapabilirsiniz. Örnekleri çoğaltmak istersek, resimleri görünür olmaya başladığı anda yükleyip sayfa yüklenme hızını arttırabilirsiniz. Bu konuda Tayfun Erbilen hocanın youtube videosu da çok faydalı olacaktır. İzlemenizi tavsiye ederim.
Bu ve benzeri önemli ipuçlarını öğrenmek için diğer yazılarıma da göz atabilirsiniz.
Web sitesine mi ihtiyacınız var ?
Bunları da beğenebilirsiniz

Monolitik CRUD Mimariden Event Sourcing’e Geçiş: State Mutasyonlarını Immutable Loglara Kademeli Taşıma Rehberi
Production ortamında veri kaybı yaratan UPDATE komutlarından kurtulup, p99 gecikmesini 400ms’den 18ms’ye düşüren Event Sourcing mimarisine aşamalı geçiş.
Devamını Oku

WebSocket Yatay Ölçeklemesinde Redis Pub/Sub mu NATS mı? Mesaj İletim Garantisi Karar Matrisi
WebSocket yatay ölçeklemesinde backplane seçimi: Redis 7.2 Pub/Sub ve NATS 2.10 JetStream karşılaştırması, p99 gecikme metrikleri ve karar çerçevesi.
Devamını Oku

Sıfırdan Lock-Free Ring Buffer: C++ ile p99 Latency Optimizasyonu
C++ ile lock-free ring buffer inşa ederek mesajlaşma kuyruklarında p99 latency değerlerini 14.5ms’den 0.4ms’ye düşürme, memory barrier ve cache line rehberi.
Devamını Oku