position: sticky เคล็ดลับที่ไม่ลับ

Banyawat
1 min readJan 6, 2018

--

ผมเสียเวลาครึ่งวันไปกับการหาวิธีทำ Single page ที่ดีไซน์ให้แต่ละหน้า section สไลด์เลื่อนขึ้นมาทับหน้าsection ปัจจุบัน

มี tools มากมายสำหรับเพิ่มลูกเล่นให้กับ mouse scroll อย่างเช่น Scrollmagic.io หรืออย่าง React spark scroll แต่ดูๆแล้วใช้งานยากไปนิดนึง และทำให้เว็บเราอ้วนขึ้น เพราะต้อง import มือที่สามอย่าง Animate.css มาอีก

และแล้วก็พบหนทางสว่าง หลังจากที่ต้องเขียนโค้ดเพิ่มอีกหลายบรรทัด ก็จะเหลือเพียงแค่

position: sticky;
top: 0;

top: 0 เป็นการกำหนดให้ element นั้นๆขึ้นไปได้ไม่เกินขอบบนสุดของหน้าจอ เพื่อให้แต่ละ element มันมาทับกัน นอกเหนือจากนี้ ก็สามารถให้มันติดกับด้านอื่นได้ด้วย left, right, bottom เช่นกัน

หลังจากนี้ก็ยังสามารถเอาไปต่อยอดให้เว็บมี animation เป็น parallax ได้อีกด้วย

ระวังด้วย!

เช็ค parent div ให้ดี เพราะว่า overflow: hidden นั้นจะทำให้ sticky ไม่ทำงานเอาได้นะ!

--

--

Banyawat
Banyawat

No responses yet