ปลั๊กอิน Bootstrap Affix (ขั้นสูง)
ปลั๊กอินเสริม
ปลั๊กอิน Affix ช่วยให้องค์ประกอบสามารถติด (ล็อค) กับพื้นที่บนหน้าได้ มักใช้กับเมนูการนำทางหรือปุ่มไอคอนโซเชียล เพื่อให้ "ติด" ที่บริเวณใดบริเวณหนึ่งขณะเลื่อนหน้าขึ้นและลง
ปลั๊กอิน จะเปิดและ ปิดการทำงานนี้ (เปลี่ยนค่า
CSS position
จากstatic
เป็นfixed
) ขึ้นอยู่กับตำแหน่งการเลื่อน
ตัวอย่างที่ 1)แถบนำทางที่ติดอยู่:
ตัวอย่างที่ 2)แถบด้านข้างที่ติดอยู่:
ด้วย Affix เมื่อเราเลื่อนหน้าขึ้นและลง เมนูจะมองเห็นได้เสมอและล็อคอยู่ในตำแหน่ง
วิธีสร้างเมนูนำทางที่ติดอยู่
ตัวอย่างต่อไปนี้แสดงวิธีการสร้างเมนูการนำทางที่ติดอยู่ตามแนวนอน:
ตัวอย่าง
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
ตัวอย่างต่อไปนี้แสดงวิธีการสร้างเมนูการนำทางที่ติดอยู่ตามแนวตั้ง:
ตัวอย่าง
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
ตัวอย่างที่อธิบาย
เพิ่มdata-spy="affix"
ไปยังองค์ประกอบที่คุณต้องการติด
หรือเพิ่มdata-offset-top|bottom
แอตทริบิวต์เพื่อคำนวณตำแหน่งของการเลื่อน
มันทำงานอย่างไร
ปลั๊กอินเสริมจะสลับระหว่างสามคลาส: .affix
, , .affix-top
และ
.affix-bottom
แต่ละชั้นแสดงถึงสถานะเฉพาะ คุณต้องเพิ่มคุณสมบัติ CSS เพื่อจัดการตำแหน่งจริง ยกเว้นposition:fixed
ใน.affix
คลาส
- ปลั๊กอินเพิ่ม คลาส
.affix-top
หรือ.affix-bottom
เพื่อระบุว่าองค์ประกอบอยู่ในตำแหน่งบนสุดหรือล่างสุด การวางตำแหน่งด้วย CSS ไม่จำเป็น ณ จุดนี้ - การเลื่อนผ่านองค์ประกอบที่ติดอยู่ทำให้เกิดการติดจริง - นี่คือตำแหน่งที่ปลั๊กอินแทนที่ คลาส
.affix-top
หรือ.affix-bottom
ด้วย.affix
คลาส (setsposition:fixed
) ณ จุดนี้ คุณต้องเพิ่ม CSStop
หรือbottom
คุณสมบัติเพื่อวางตำแหน่งองค์ประกอบที่ติดอยู่ในหน้า - หากมีการกำหนดออฟเซ็ตด้านล่าง การเลื่อนผ่านจะแทนที่
.affix
คลาสด้วย.affix-bottom
. เนื่องจากออฟเซ็ตเป็นทางเลือก คุณจึงจำเป็นต้องตั้งค่า CSS ที่เหมาะสม ในกรณีนี้ ให้เพิ่มposition:absolute
เมื่อจำเป็น
ในตัวอย่างแรกข้างต้น ปลั๊กอิน Affix จะเพิ่ม.affix
คลาส (position:fixed) ให้กับองค์ประกอบ <nav> เมื่อเราเลื่อน 197 พิกเซลจากด้านบนสุด หากคุณเปิดตัวอย่าง คุณจะเห็นว่าเราเพิ่มtop
คุณสมบัติ CSS ด้วยค่า 0 ให้กับ.affix
คลาส เพื่อให้แน่ใจว่าแถบนำทางจะอยู่ที่ด้านบนสุดของหน้าตลอดเวลา เมื่อเราเลื่อน 197 พิกเซลจากด้านบน
Scrollspy & ต่อท้าย
การใช้ปลั๊กอิน Affix ร่วมกับ ปลั๊กอิน Scrollspy :
เมนูแนวนอน (Navbar)
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
...
</nav>
</body>
เมนูแนวตั้ง (Sidenav)
<body data-spy="scroll" data-target="#myScrollspy" data-offset="15">
<nav class="col-sm-3" id="myScrollspy">
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
...
</nav>
</body>
อ้างอิง Bootstrap Affix ที่สมบูรณ์
สำหรับการอ้างอิงที่สมบูรณ์ของวิธีการและเหตุการณ์การต่อท้ายทั้งหมด ไปที่ Bootstrap JS Affix Reference ของเรา