position:sticky kembali tersedia di Chrome

Empat tahun lalu, Eric Bidelman membuat postingan blog yang cukup keren tentang fakta bahwa position: sticky di-deploy di WebKit, yang pada saat itu merupakan mesin yang mendukung Chrome (serta banyak browser lainnya termasuk Safari). Satu tahun kemudian, dan sangat mengecewakan developer web, kami menghapus position:sticky dari Chrome karena " implementasi saat ini tidak dirancang dengan cara yang terintegrasi dengan baik dengan sistem scroll dan komposisi yang ada".

Kami selalu ingin mengembalikannya ke Chrome seperti yang dinyatakan bug, "Setelah menyelesaikan masalah scroll dan komposisi, kita harus kembali ke position: sticky dan menerapkan fitur dengan cara yang terintegrasi dengan baik dengan mesin lainnya". Bug meta yang melacak penerapan telah diperbaiki sejak tahun 2013.

Kabar baiknya adalah mulai Chrome 56 (saat ini versi beta mulai Desember 2016, stabil pada Januari 2017) position: sticky kini kembali di Chrome.

Apa yang dimaksud dengan position:sticky?

Butuh waktu beberapa saat untuk sampai ke sini, jadi mengapa saya sangat menantikannya?

position:sticky adalah atribut pemosisian CSS yang memungkinkan Anda memperbaiki elemen ke area pandang (yaitu, menautkannya ke bagian atas layar) tetapi hanya jika induknya terlihat di area pandang dan berada dalam nilai nilai minimum. Jika tidak disetel ke area pandang, elemen akan berperilaku seperti position: relative. Ini adalah tambahan yang sangat bagus dan sederhana untuk platform yang menghilangkan kebutuhan untuk menggunakan JavaScript dalam pengendali peristiwa onscroll hanya untuk mengunci elemen ke bagian atas area pandang.

Seperti inilah tampilannya di blog saya. Dengan begitu, saya dapat mempertahankan header bagian saat ini di bagian atas layar saat Anda membaca artikel saya yang agak panjang dan melelahkan :\

Untuk menerapkan fitur ini, tentukan bahwa atribut position harus memiliki nilai sticky pada elemen yang ingin Anda jadikan, eh, macet. Selain itu, Anda juga dapat menambahkan offset di tempat yang perlu ditempelkan.

    h3 {
      /* Element will be 'fixed' when it ... */
      position: sticky;
      /* ... is 10px from the top of the viewport */
      top: 10px;
    }

Contoh sebelumnya akan memperbaiki elemen <h3> pada 10 piksel dari bagian atas area pandang. Untuk memperbaikinya langsung ke bagian atas area pandang, Anda akan menetapkan atribut top sebagai top: 0px.

Dukungan untuk fitur ini cukup kuat. Fitur ini tersedia di Chrome (yay), Firefox, dan Safari. Berikut detail selengkapnya tentang position:sticky: