ในการสร้าง 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

แสดงแถบเมนูขณะยังไม่เลื่อนเนื้อหาในหน้าเว็บ
แสดงแถบเมนูขณะยังไม่เลื่อนเนื้อหาในหน้าเว็บ

 

แสดงแถบเมนูเมื่อเลื่อนเนื้อหาในหน้าเว็บลงมา
แสดงแถบเมนูเมื่อเลื่อนเนื้อหาในหน้าเว็บลงมา

เนื้อหาเพิ่มเติม

 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ถ้าใช้เมนบอร์ดที่ใส่ cpu ได้สองตัว และ cpu รันปกติแต่ vmwere
โดย Anonymous พ 20 มี.ค. 2024 3:09 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
200
พฤ 21 มี.ค. 2024 6:48 am โดย mindphp View Topic ถ้าใช้เมนบอร์ดที่ใส่ cpu ได้สองตัว และ cpu รันปกติแต่ vmwere
วิธีตั้งค่าการเก็บ Logs Error ของ OpenLiteSpeed ใช้ได้กับ Apache, Nginx
โดย mindphp พ 20 มี.ค. 2024 2:27 pm บอร์ด Linux - Web Server
0
263
พ 20 มี.ค. 2024 2:27 pm โดย mindphp View Topic วิธีตั้งค่าการเก็บ Logs Error ของ OpenLiteSpeed ใช้ได้กับ Apache, Nginx
วิธีแก้ปัญหา ลืมรหัสผ่าน ไม่รู้รหัสผ่าน เข้า WebAdmin Console ของ OpenLiteSpeed ไม่ได้
โดย mindphp พ 20 มี.ค. 2024 2:16 pm บอร์ด Linux - Web Server
0
158
พ 20 มี.ค. 2024 2:16 pm โดย mindphp View Topic วิธีแก้ปัญหา ลืมรหัสผ่าน ไม่รู้รหัสผ่าน เข้า WebAdmin Console ของ OpenLiteSpeed ไม่ได้
สอบถามรับค่าไฟล์อัพโหลดเข้า controller ไม่มี type และ tmp_name [phpBB]
โดย eange08 พ 20 มี.ค. 2024 10:59 am บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
357
พ 20 มี.ค. 2024 11:55 am โดย eange08 View Topic สอบถามรับค่าไฟล์อัพโหลดเข้า controller ไม่มี type และ tmp_name [phpBB]
Joomla User Group London มี Meeting เกี่ยวกับ Joomla 5.1 และ การทำ Test ด้วย Cypress
โดย mindphp พ 20 มี.ค. 2024 2:29 am บอร์ด MindPHP News & Feedback
2
176
พ 20 มี.ค. 2024 3:17 am โดย mindphp View Topic Joomla User Group London มี Meeting  เกี่ยวกับ Joomla 5.1 และ การทำ Test ด้วย Cypress
SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
โดย witsarutt000 พฤ 14 มี.ค. 2024 4:07 pm บอร์ด SQL Knowledge
1
454
พฤ 14 มี.ค. 2024 5:44 pm โดย Sirayu View Topic SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
โดย witsarutt000 พฤ 14 มี.ค. 2024 11:17 am บอร์ด PHP Knowledge
0
400
พฤ 14 มี.ค. 2024 11:17 am โดย witsarutt000 View Topic PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
โดย Thanavat_n พ 13 มี.ค. 2024 11:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
5
599
พ 13 มี.ค. 2024 1:34 pm โดย Thanavat_n View Topic ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer