CodeBlanks Logo Icon CodeBlanks

ResizeObserver derinlemesine

JavaScript kursu · Uzman · Ders 14/63

ResizeObserver ile öğe boyut değişimlerini ve content box size'i öğrenirsin.

ResizeObserver ve contentBoxSize

ResizeObserver bir öğenin boyut değişimlerini izler. Callback bir entries dizisi alır; her entry, izlenen öğenin yeni ölçülerini taşır. Temel kullanımda entry.contentRect genişlik ve yüksekliği verir.

Daha ayrıntılı bilgi için entry.contentBoxSize kullanırsın. Bu alan bir dizidir; her öğe inlineSize (yatay) ve blockSize (dikey) içerir. CSS Box Model'e uygun olarak içeriğin ölçüldüğü kutuyu verir; padding ve border dahil değildir.

borderBoxSize farkı

borderBoxSize ise padding ve border dahil tüm kutuyu ölçer. Yani contentBoxSize yalnızca içerik alanını, borderBoxSize öğenin görünen tüm alanını verir. Bu ayrım, CSS box-sizing ayarına göre değişen mizanpaj hesaplamalarında önemli olur.

Bazı tarayıcılarda devicePixelContentBoxSize da bulunur; bu, yüksek DPI ekranlarda fiziksel piksel cinsinden ölçü verir. Hangisini kullanacağına ihtiyacına göre karar verirsin.

Uygulama box öğesinin genişliğini izle

Bir ResizeObserver oluştur. Callback entries alır; her entry için entry.contentBoxSize[0].inlineSize değerini konsola yaz. box öğesini izle.

Örnek çözümü göster
1. new ResizeObserver((entries) => {...}) ile oluştur.
2. Callback içinde entries'i dolaş ve entry.contentBoxSize[0].inlineSize'ı yazdır.
3. observer.observe(box) ile başlat.

Örnek çözüm:
const observer = new ResizeObserver((entries) => {
  for (const entry of entries) {
    console.log(entry.contentBoxSize[0].inlineSize);
  }
});
observer.observe(box);

Kendini test et

  1. observe çağrısı

    observer.____(box);
    Cevabı göster
    observer.observe(box);
  2. ResizeObserver'da contentBoxSize ile borderBoxSize arasındaki fark nedir?

    • contentBoxSize padding dahil, borderBoxSize dahil değil
    • İkisi tamamen aynıdır
    • contentBoxSize içeriği, borderBoxSize padding ve border dahil tüm kutuyu ölçer
    • borderBoxSize yalnızca genişliği verir
    Cevabı göster

    contentBoxSize içeriği, borderBoxSize padding ve border dahil tüm kutuyu ölçer — Doğru. contentBoxSize içerik alanını, borderBoxSize padding ve border dahil tüm kutuyu ölçer.

  3. ResizeObserverSize alanlarını eşleştir

    inlineSize
    Yatay içerik ölçüsü
    blockSize
    Dikey içerik ölçüsü
    contentBoxSize
    İçerik kutusu
    borderBoxSize
    Kenarlık kutusu

Uzman bölümündeki tüm dersler