ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

 

     CSS ย่อมาจาก Cascading Style Sheet มักเรียกโดยย่อว่า “สไตล์ชีท” คือ ภาษาที่ใช้เป็นส่วนของการจัดรูปแบบการแสดงผลเอกสาร htmlโดยที่ CSS กำหนดกฎเกณฑ์ในการระบุรูปแบบ หรือ “Style” ของเนื้อหาในเอกสาร โดยบทความนี้จะกล่าวถึง การฟิคแถบ Navbar (เมนูบาร์ ซึ่งเป็นส่วนประกอบสำคัญบนเว็บไซด์ ในปัจจุบันอาจจะมีทั้ง jQuery หรือ JAVASCRIPT ที่มาช่วยให้เราสร้างเมนูบาร์ได้ง่ายขึ้น) โดยใช้ JavaScriptเข้ามาช่วย

     โดยในบทความนี้จะกล่าวถึงการฟิค Navbar ที่เคยฟิคไปแล้ว แต่ในโหมดมือถือจะเลือกให้ฟิคในส่วนที่ต้องการเท่านั้น

 

รูปแบบโค้ด CSS

.sticky {
  position: fixed;
  top: 0;
  width: 100%;
}

@media (width:320px){   // ขนาดที่กำหนดไว้
.sticky_1 {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 2000;
}
.notst{
    position: relative; 
}

 

รูปแบบโค้ด JavaScript

 <script>
        window.onscroll = function() {myFunction()};
        var navbar = document.getElementById("navbar");
        var navbar_1 = document.getElementById("navbar_1");
        var navbar_2 = document.getElementById("navbar");
        var sticky_1 = navbar_1.offsetTop;
        var sticky = navbar.offsetTop;

        function myFunction() {
          if (window.pageYOffset >= sticky) {
            navbar.classList.add("sticky")
          }
          if (window.pageYOffset >= sticky_1) {
            navbar_1.classList.add("sticky_1")
            navbar_2.classList.add("notst")
          }
          else {
            navbar_1.classList.remove("sticky_1");
            navbar.classList.remove("sticky");
            navbar_2.classList.remove("notst")
          }
          
        }
          
    </script>

 

ตัวอย่างโค้ด

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
  margin: 0;
  font-size: 28px;
}

.header {
  background-color: #f1f1f1;
  padding: 30px;
  text-align: center;
}

#navbar {
  overflow: hidden;
  background-color: red;
}

#navbar a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}

#navbar a:hover {
  background-color: #ddd;
  color: black;
}

#navbar a.active {
  background-color: #4CAF50;
  color: white;
}



#navbar_1 {
  overflow: hidden;
  background-color: red;
}

#navbar_1 a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}

#navbar_1 a:hover {
  background-color: #ddd;
  color: black;
}

#navbar_1 a.active {
  background-color: #4CAF50;
  color: white;
}

.sticky {
  position: fixed;
  top: 0;
  width: 100%;
}

.sticky + .content {
  padding-top: 60px;
}


@media (width:320px){
.sticky_1 {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 2000;
}
.notst{
    position: static; 
}
}


</style>
</head>
<body>

<div class="header">
  <h2>Scroll Down</h2>
</div>

<div id="navbar">
  <a class="active">Home</a>
  <a>News</a>
  <a>Contact</a>
</div>
    
<div id="navbar_1">
  <a class="active">Home_1</a>
  <a>News</a>
  <a>Contact</a>
</div>

<div class="content">
  <h3>Sticky Navigation</h3>
  <p>Hello, I am mindphp.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
  <p>I love you.</p>
</div>

<script>
 window.onscroll = function() {myFunction()};
        var navbar = document.getElementById("navbar");
        var navbar_1 = document.getElementById("navbar_1");
        var navbar_2 = document.getElementById("navbar");
        var sticky_1 = navbar_1.offsetTop;
        var sticky = navbar.offsetTop;

        function myFunction() {
          if (window.pageYOffset >= sticky) {
            navbar.classList.add("sticky")
          }
          if (window.pageYOffset >= sticky_1) {
            navbar_1.classList.add("sticky_1")
            navbar_2.classList.add("notst")
          }
          else {
            navbar_1.classList.remove("sticky_1");
            navbar.classList.remove("sticky");
            navbar_2.classList.remove("notst")
          }
          
        }
</script>

</body>
</html>

 

ผลลัพธ์

 

เมื่อยังไม่ได้เลื่อน Scroll Down ในหน้า desktop

เมื่อยังไม่ได้เลื่อน Scroll Down ในหน้า Desktop
เมื่อยังไม่ได้เลื่อน Scroll Down ในหน้า Desktop

 

เมื่อเลื่อนเมาส์ Scroll Down  ในหน้า desktop

เมื่อเลื่อนเมาส์ Scroll Down  ในหน้า desktop
เมื่อเลื่อนเมาส์ Scroll Down ในหน้า desktop

 

เมื่อยังไม่ได้เลื่อน Scroll Down ในหน้า Mobile

เมื่อยังไม่ได้เลื่อน Scroll Down ในหน้า Mobile
เมื่อยังไม่ได้เลื่อน Scroll Down ในหน้า Mobile

 

เมื่อเลื่อนเมาส์ Scroll Down  ในหน้า Mobile

เมื่อเลื่อนเมาส์ Scroll Down  ในหน้า Mobile
เมื่อเลื่อนเมาส์ Scroll Down ในหน้า Mobile

 

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : HTML css CodeIgniter Framework

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ค่าเฉลี่ยถ่วงน้ำหนัก (weighted arithmetic mean)
โดย numtan5839 ศ 08 พ.ย. 2019 3:01 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
55
ศ 08 พ.ย. 2019 3:01 pm โดย numtan5839
การใช้ data-thumbnail ใน List box ทำภาพตัวอย่างประกอบตัวเลือกในลิสบ๊อค
โดย bankjittapol ศ 08 พ.ย. 2019 2:25 pm บอร์ด Booststap Knowledge
0
56
ศ 08 พ.ย. 2019 2:25 pm โดย bankjittapol
Q - ไม่สามารถบันทึกรูปภาพที่แคปบนหน้าจอได้ ในโปรแกรม snagit
โดย nnamfon.26 ศ 08 พ.ย. 2019 11:26 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
4
103
จ 11 พ.ย. 2019 3:42 pm โดย nnamfon.26
ต้องการเลือก select tag แล้วส่งค่ากลับมาแล้วแต่ไม่รู้จะนำมาใช้ยังไงครับ
โดย bankjittapol ศ 08 พ.ย. 2019 11:24 am บอร์ด JavaScript & Jquery Ajax
4
106
ศ 08 พ.ย. 2019 3:28 pm โดย bankjittapol
อยากทราบวิธีการที่จะแนบไฟล์ใน ข้อความส่วนตัว
โดย Ittichai_chupol ศ 08 พ.ย. 2019 11:09 am บอร์ด Programming - PHP
3
85
ศ 08 พ.ย. 2019 2:55 pm โดย thatsawan
ไม่มีรหัสไปรษณี 30005 ทำให้อัพเดต ไปรษณีย์ เดอะมอลล์นครราชสีมา แล้วไม่ขึ้นครับ
โดย jamepiyawat ศ 08 พ.ย. 2019 9:53 am บอร์ด Odoojob.com - Tester
3
10
ศ 08 พ.ย. 2019 12:30 pm โดย mindphp
งานประจำวันที่ 8 พฤศจิกายน 2562
โดย numtan5839 ศ 08 พ.ย. 2019 9:21 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
4
40
ศ 08 พ.ย. 2019 6:27 pm โดย numtan5839
วิธีการเพิ่ม part way ให้แสดงใน phpbb
โดย Ittichai_chupol พฤ 07 พ.ย. 2019 5:46 pm บอร์ด PHP Knowledge
0
60
พฤ 07 พ.ย. 2019 5:46 pm โดย Ittichai_chupol
เท็มเพลต megadeal เมือเปลี่ยนเป็นภาษาไทยแล้วหน้า Home ก็เปลี่ยนไป ครับ
โดย jamepiyawat พฤ 07 พ.ย. 2019 3:33 pm บอร์ด Joomla Development
2
78
ศ 08 พ.ย. 2019 12:44 pm โดย mindphp
โมดูล JE Quick Contact ขึ้นว่า Warning ครับ
โดย jamepiyawat พฤ 07 พ.ย. 2019 3:16 pm บอร์ด Joomla Development
5
70
ศ 08 พ.ย. 2019 5:29 pm โดย mindphp
ขั้นตอนการอัดวิดิโอ
โดย numtan5839 พฤ 07 พ.ย. 2019 2:31 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
1
10
พฤ 07 พ.ย. 2019 2:47 pm โดย thatsawan
วิธีการเพิ่มค่าลดค่า array แต่ละค่าใน php
โดย jamepiyawat พฤ 07 พ.ย. 2019 2:11 pm บอร์ด PHP Knowledge
0
35
พฤ 07 พ.ย. 2019 2:11 pm โดย jamepiyawat
วิธีการใช้ curl เพื่อขอข้อมูลเว็บไซต์
โดย jamepiyawat พฤ 07 พ.ย. 2019 1:46 pm บอร์ด PHP Knowledge
0
38
พฤ 07 พ.ย. 2019 1:46 pm โดย jamepiyawat
Joomla 3.9.13 พร้อมให้อัปเดตแล้ว ปรับปรุงความปลอดภัยและระบบให้ดีขึ้น
โดย tsukasaz พฤ 07 พ.ย. 2019 1:14 pm บอร์ด MindPHP News / Feedback
0
82
พฤ 07 พ.ย. 2019 1:14 pm โดย tsukasaz
VDO - การแนบไฟล์รูปภาพในบอร์ด Mindphp
โดย numtan5839 พฤ 07 พ.ย. 2019 12:28 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
3
27
พ 13 พ.ย. 2019 6:22 pm โดย mindphp
ทำไมข้อมูลของใบแจ้งหนี้ถึงไม่แสดงเมื่อกดHeader for report บนระบบERP
โดย nnamfon.26 พฤ 07 พ.ย. 2019 12:13 pm บอร์ด OpenERP - MD-ERP (Main)
5
17
พฤ 07 พ.ย. 2019 6:35 pm โดย mindphp
จะทำอย่างไรให้เราดึงข้อมูล Email ของ admin joomal ออมมาได้ครับ
โดย jamepiyawat พฤ 07 พ.ย. 2019 11:37 am บอร์ด Joomla Development
4
84
ศ 08 พ.ย. 2019 2:32 pm โดย tsukasaz
ผู้ป่วย 4 โรคเรื้อรัง และมีสิทธิบัตรทอง สามารถขอรับยาที่ร้านขายยาใกล้บ้านได้แล้ว
โดย promotion พฤ 07 พ.ย. 2019 11:16 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
39
พฤ 07 พ.ย. 2019 11:16 am โดย promotion
ทำความเข้าใจกับตัวอักษรที่นำหน้าเลขพัสดุ
โดย numtan5839 พฤ 07 พ.ย. 2019 11:04 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
77
พฤ 07 พ.ย. 2019 11:04 am โดย numtan5839
งานประจำวันที่ 7 พฤศจิกายน 2562
โดย numtan5839 พฤ 07 พ.ย. 2019 10:07 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
9
78
ศ 08 พ.ย. 2019 2:01 pm โดย numtan5839