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

 

     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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ตรวจสอบไอพี แอดเดรส
โดย chaiyasitpraphut ศ 15 พ.ย. 2019 9:54 am บอร์ด MindPHP News / Feedback
0
16
ศ 15 พ.ย. 2019 9:54 am โดย chaiyasitpraphut
VDO - โปรแกรมคำนวณอัตราแลกเปลี่ยนสกุลเงิน
โดย numtan5839 พฤ 07 พ.ย. 2019 4:05 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
21
119
ศ 15 พ.ย. 2019 9:51 am โดย numtan5839
VDO - โปรแกรมตรวจสอบหมายเลขพัสดุ
โดย numtan5839 พฤ 07 พ.ย. 2019 3:57 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
15
85
ศ 15 พ.ย. 2019 9:50 am โดย numtan5839
VDO - การใช้โปรแกรมคำนวน ค่าเฉลี่ย, ค่าแปรปรวน, ค่าเบี่ยงเบนมาตราฐาน
โดย numtan5839 พฤ 07 พ.ย. 2019 2:54 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
11
113
ศ 15 พ.ย. 2019 9:50 am โดย numtan5839
VDO - การใช้โปรแกรมคำนวณสแควรูท
โดย numtan5839 พฤ 07 พ.ย. 2019 3:18 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
9
76
ศ 15 พ.ย. 2019 9:47 am โดย numtan5839
งานประจำวันที่ 15 พฤศจิกายน 2562
โดย numtan5839 ศ 15 พ.ย. 2019 9:38 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
2
28
ศ 15 พ.ย. 2019 6:15 pm โดย numtan5839
งานประจำวันที่ 15 พฤศจิกายน 2562
โดย chaiyasitpraphut ศ 15 พ.ย. 2019 9:03 am บอร์ด MT35 - นายชัยยะสิทธิ์ พระพุทธ
0
10
ศ 15 พ.ย. 2019 9:03 am โดย chaiyasitpraphut
ทำเอฟเฟค ตอนกดปุ่ม
โดย bankjittapol พฤ 14 พ.ย. 2019 8:11 pm บอร์ด CSS Knowledge
0
52
พฤ 14 พ.ย. 2019 8:11 pm โดย bankjittapol
งานประจำวันที่ 14 พฤศจิกายน 2562
โดย chaiyasitpraphut พฤ 14 พ.ย. 2019 10:15 am บอร์ด MT35 - นายชัยยะสิทธิ์ พระพุทธ
4
24
พฤ 14 พ.ย. 2019 7:30 pm โดย chaiyasitpraphut
ทำยังไง ให้ข้อความใน list box มองเห็นสระ อุ , อู ด้านล่าง
โดย bankjittapol พฤ 14 พ.ย. 2019 5:43 pm บอร์ด HTML CSS
3
77
ศ 15 พ.ย. 2019 9:16 am โดย bankjittapol
spoofing attack มีอะไรบ้าง
โดย chaiyasitpraphut พฤ 14 พ.ย. 2019 7:18 pm บอร์ด PHP Knowledge
0
30
พฤ 14 พ.ย. 2019 7:18 pm โดย chaiyasitpraphut
งานประจำวันที่ 14 พฤศจิกายน 2562
โดย numtan5839 พฤ 14 พ.ย. 2019 11:05 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
3
29
พฤ 14 พ.ย. 2019 6:59 pm โดย numtan5839
ภาพประกอบ Tools
โดย numtan5839 ศ 08 พ.ย. 2019 1:58 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
14
120
ส 16 พ.ย. 2019 10:38 am โดย numtan5839
Paletton เว็บไซต์จับคู่สี ตัวช่วยสำหรับงาน Graphic
โดย numtan5839 พฤ 14 พ.ย. 2019 6:19 pm บอร์ด Graphic design
0
39
พฤ 14 พ.ย. 2019 6:19 pm โดย numtan5839
แนะนำฟังก์ชั่นระบบ Webboard Mindphp.com ใหม่ (phpbb v.3.2)
โดย numtan5839 พฤ 14 พ.ย. 2019 5:06 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
9
79
อ 19 พ.ย. 2019 11:07 am โดย numtan5839
Data Encryption
โดย chaiyasitpraphut พฤ 14 พ.ย. 2019 6:04 pm บอร์ด PHP Knowledge
0
27
พฤ 14 พ.ย. 2019 6:04 pm โดย chaiyasitpraphut
อันตรายของ phishing
โดย chaiyasitpraphut พฤ 14 พ.ย. 2019 5:46 pm บอร์ด PHP Knowledge
0
24
พฤ 14 พ.ย. 2019 5:46 pm โดย chaiyasitpraphut
โปรแกรมหาพิกัดจากภาพ และแสดงบนแผนที่
โดย chaiyasitpraphut พฤ 14 พ.ย. 2019 3:39 pm บอร์ด MT35 - นายชัยยะสิทธิ์ พระพุทธ
3
16
พฤ 14 พ.ย. 2019 5:46 pm โดย jamepiyawat
EXIF คืออะไรจะดูค่า EXIF ได้อย่างไร
โดย chaiyasitpraphut พฤ 14 พ.ย. 2019 5:14 pm บอร์ด PHP Knowledge
0
32
พฤ 14 พ.ย. 2019 5:14 pm โดย chaiyasitpraphut
ทำอย่างไรให้ใน loop แสดงสินค้าไม่ซ้ำกัน
โดย Patipat อ 17 ก.ย. 2019 11:19 am บอร์ด Joomla Development
2
268
พฤ 14 พ.ย. 2019 5:14 pm โดย Losa