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

 

     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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ลบ background ง่ายๆไม่ต้องใช้ Photoshop
โดย numtan5839 พ 13 พ.ย. 2019 12:45 pm บอร์ด Graphic design
0
18
พ 13 พ.ย. 2019 12:45 pm โดย numtan5839
Q - สอบ ถามเรื่อง python tkinter วิธีทำ PDF
โดย ichimarusoichi พ 23 ม.ค. 2019 3:25 pm บอร์ด Programming - C/C++ & java & Python
8
2154
พ 13 พ.ย. 2019 12:31 pm โดย dharya
ไฟล์ XAPK คืออะไร
โดย chaiyasitpraphut พ 13 พ.ย. 2019 12:11 pm บอร์ด Mobile Application Developing- Android, iOS
0
15
พ 13 พ.ย. 2019 12:11 pm โดย chaiyasitpraphut
วิธีเปิดและแก้ไขไฟล์ PSD โดยไม่ต้องลงโปรแกรม
โดย numtan5839 พ 13 พ.ย. 2019 11:59 am บอร์ด Graphic design
0
22
พ 13 พ.ย. 2019 11:59 am โดย numtan5839
สอบถาม ผมจะ add pinter จากเครื่องที่ share printer นั้นอยู่โดยเครื่องนั้นใช้ OS windows
โดย jirawoot พ 13 พ.ย. 2019 11:31 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
17
พ 13 พ.ย. 2019 11:31 am โดย jirawoot
แนะนำ Website แต่งรูป Online ไม่ต้องติดตั้ง
โดย numtan5839 พ 13 พ.ย. 2019 11:16 am บอร์ด Graphic design
0
47
พ 13 พ.ย. 2019 11:16 am โดย numtan5839
ขอสอบถามการบันทึกบัญชีของการซื้อบริการรายเดือนของ Line ด้วยบัตรเครดิตของผู้บริหารน่อยค่ะ
โดย nnamfon.26 พ 13 พ.ย. 2019 11:11 am บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
15
พ 13 พ.ย. 2019 11:11 am โดย nnamfon.26
ทำความรู้จักกับ LINE Notify
โดย chaiyasitpraphut พ 13 พ.ย. 2019 11:11 am บอร์ด IOT - Internet of things
0
17
พ 13 พ.ย. 2019 11:11 am โดย chaiyasitpraphut
กินยาคุมครั้งแรกยังไงให้ถูกวิธี ไม่ท้องแน่นอน!
โดย promotion พ 13 พ.ย. 2019 11:06 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
15
พ 13 พ.ย. 2019 11:06 am โดย promotion
ภาพ thailand-football-team
โดย numtan5839 อ 12 พ.ย. 2019 7:10 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
3
29
พ 13 พ.ย. 2019 10:43 am โดย numtan5839
บอร์ด Mindphp.com ตอนนี้ อัพเกรด phpBB จาก 3.1 เป็น 3.2 แล้วนะ
โดย mindphp พ 13 พ.ย. 2019 4:54 am บอร์ด MindPHP News / Feedback
0
55
พ 13 พ.ย. 2019 4:54 am โดย mindphp
ติดตั้งโมดูลใน joomla 2.5 แล้ว erorr
โดย jamepiyawat อ 12 พ.ย. 2019 8:04 pm บอร์ด Joomla Development
3
83
อ 12 พ.ย. 2019 8:49 pm โดย mindphp
การใช้ confirm() ของ Javascript เพื่อ แจ้งเตือน ให้กดยืนยัน ก่อนทำการ ลบข้อมูล
โดย bankjittapol อ 12 พ.ย. 2019 7:12 pm บอร์ด Jquery & Ajax Knowledge
0
42
อ 12 พ.ย. 2019 7:12 pm โดย bankjittapol
การใช้ Domvas library แปลง code html แปลงหน้าเว็บ เป็นรูปภาพ
โดย bankjittapol อ 12 พ.ย. 2019 6:43 pm บอร์ด Jquery & Ajax Knowledge
0
34
อ 12 พ.ย. 2019 6:43 pm โดย bankjittapol
B - ต้องการสร้างใบcustomer paymentเมื่อใส่ข้อมูลที่withholding tax ไม่สามารถทำได้
โดย nnamfon.26 อ 12 พ.ย. 2019 6:20 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
6
อ 12 พ.ย. 2019 6:20 pm โดย nnamfon.26
รู้จักกับ soil moisture sensor
โดย chaiyasitpraphut อ 12 พ.ย. 2019 5:12 pm บอร์ด IOT - Internet of things
0
33
อ 12 พ.ย. 2019 5:12 pm โดย chaiyasitpraphut
PIR Motion Sensor module คืออะไร
โดย chaiyasitpraphut อ 12 พ.ย. 2019 4:51 pm บอร์ด IOT - Internet of things
0
24
อ 12 พ.ย. 2019 4:51 pm โดย chaiyasitpraphut
แปลง code html เป็น image แต่ไม่แสดงผลลัพธ์
โดย bankjittapol อ 12 พ.ย. 2019 4:44 pm บอร์ด JavaScript & Jquery Ajax
4
86
พ 13 พ.ย. 2019 5:29 am โดย mindphp
วิธีการลงทุนที่ดีที่สุดสำหรับ "มนุษย์เงินเดือน"
โดย somying อ 12 พ.ย. 2019 4:09 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
40
อ 12 พ.ย. 2019 4:09 pm โดย somying
เปิดและปิดไฟ LED ด้วย Blynk
โดย chaiyasitpraphut อ 12 พ.ย. 2019 4:01 pm บอร์ด IOT - Internet of things
0
29
อ 12 พ.ย. 2019 4:01 pm โดย chaiyasitpraphut