ในการสร้าง Template เว็บไซต์ ส่วนประกอบที่สำคัญมากๆในหน้าเว็บนั่นคือแถบเมนู ซึ่งมีไว้แสดงชื่อเมนูหน้าต่างๆของเว็บไซต์ เพื่อความสวยงามและสะดวกในการใช้งานแถบเมนู เมื่อเลื่อนเนื้อหาของหน้าเว็บลงมา แถบเมนูก็ควรจะเลื่อนตามหน้าเว็บลงมาด้วยและอยู่ตำแหน่งบนสุด บทความนี้จึงแนะนำวิธีการ Fix ให้แถบเมนูเลื่อนตามหน้าจอ ในมุมมอง Mobile ด้วย JavaScript ซึ่งมีขั้นตอนดังนี้
ใส่โค้ดด้านล่างนี้ลงในไฟล์ index.php ของโฟลเดอร์เทมเพลตที่ต้องการนำไปใช้งาน
<script type="text/javascript">
jQuery(function($) {
var h = $('.menu-nav-top').closest('.span8').height();
$('.menu-nav-top').closest('.span8').css('height', h);
fixmenu();
$(window).scroll(function() {
fixmenu();
});
function fixmenu() {
var c = $('.menu-nav-top').closest('.navbar');
if($(this).scrollTop() > h) {
if(!c.hasClass('navbar-fixed-top')) {
c.addClass('navbar-fixed-top');
c.css('position', 'fixed');
}
} else {
c.removeClass('navbar-fixed-top');
c.css('position', 'static');
}
}
});
</script>
อธิบายโค้ด
1.หาความสูง header menu ของเว็บไซต์
2.กำหนด event(เหตุการณ์) ตอน Scroll เมื่อหน้าจอเลื่อนลงมาเกินส่วนสูงของ menu
3.เพิ่ม class navbar-fixed-top และกำหนด CSS position เป็น fixed
4.ถ้าเลื่อนจอกลับขึ้นไปข้างบน ให้ลบ class navbar-fixed-top และกำหนด CSS position เป็นแบบไม่ fixed
ผลลัพธ์หน้าเว็บหลังจากการ Fix แถบเมนูให้เลื่อนตามหน้าจอในมุมมอง Mobile
เนื้อหาเพิ่มเติม