วิธีที่จะสร้าง: เมนูที่เปิดเคลื่อนตัว
เรียนรู้วิธีที่จะสร้างเมนูที่เปิดเคลื่อนตัว
คลิกที่ปุ่มด้านล่างเพื่อดูวิธีที่มันทำงาน:
สร้างเมนูที่เปิดเคลื่อนตัว
ขั้นที่ 1 - เพิ่ม HTML:
<!-- ประตูที่คลุม --> <div id="myNav" class="overlay"> <!-- ปิดประตูที่คลุมเมนู --> <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a> <!-- Overlay content --> <div class="overlay-content"> <a href="#">About</a> <a href="#">Services</a> <a href="#">Clients</a> <a href="#">Contact</a> </div> </div> /* ใช้อิเล็มใดก็ได้เพื่อเปิด/แสดงเมนูนำทางกลุ่มเงา */ <span onclick="openNav()">open</span>
ขั้นที่สอง - เพิ่ม CSS:
/* กลุ่มเงา (พื้นหลัง) */ .overlay { /* ความสูงและความกว้างขึ้นอยู่กับวิธีที่คุณต้องการแสดงกลุ่มเงา (ดู JS ด้านล่าง) */ height: 100%; width: 0; position: fixed; /* คงตัวตามตำแหน่ง */ z-index: 1; /* มีตำแหน่งด้านบน */ left: 0; top: 0; background-color: rgb(0,0,0); /* สีดำ (สีที่มีในตัวเลือก) */ background-color: rgba(0,0,0, 0.9); /* สีดำโดยมีระดับความโปร่งเปลือย */ overflow-x: hidden; /* ปิดการเลื่อนตัวระดับนอก (ฝั่งน้ำเนียน) */ transition: 0.5s; /* ประสาวะ 0.5 วินาที ทำให้กลุ่มเงาเลื่อนขึ้นหรือลง (ความสูงหรือความกว้าง ตามที่คุณต้องการให้แสดง) */ } /* จัดวางเนื้อหาในกลุ่มเงา */ .overlay-content { position: relative; top: 25%; /* ห่างจากด้านบน 25% ของตำแหน่ง */ width: 100%; /* 100% ความกว้าง */ text-align: center; /* ข้อความ/ลิงก์ตรงกลาง */ margin-top: 30px; /* มุมของเขตด้านบน 30 พิกเซล เพื่อหลีกเลี่ยงชนกับปุ่มปิดบนหน้าจอเล็ก */ } /* ลิงก์แนวนำภายในกลุ่มเงา */ .overlay a { padding: 8px; text-decoration: none; font-size: 36px; color: #818181; display: block; /* แสดงแบบบล็อค ไม่ใช่แบบอินไลน์ */ transition: 0.3s; /* ประสาวะ 0.3 วินาที สำหรับเมาส์หมุน (สี) */ } /* ขณะที่คุณมีหมุนเมาส์อยู่บนลิงก์แนวนำ เปลี่ยนสีของมัน */ .overlay a:hover, .overlay a:focus { color: #f1f1f1; } /* จัดตั้งตำแหน่งปุ่มปิด (ด้านบนขวา) */ .overlay .closebtn { position: absolute; top: 20px; right: 45px; font-size: 60px; } /* แก้ไขขนาดของตัวอักษรและจัดตั้งตำแหน่งปุ่มปิดเมื่อความสูงของหน้าจอต่ำกว่า 450 พิกเซล เพื่อหลีกเลี่ยงการปิดกัน */ @media screen and (max-height: 450px) { .overlay a {font-size: 20px} .overlay .closebtn { font-size: 40px; top: 15px; right: 35px; } }
ขั้นที่สาม - เพิ่ม JavaScript:
ตัวอย่างด้านล่างนี้ ในขณะที่มีการกระตุ้นการเรียกใช้ จะทำให้เมนูที่ปิดบนระนาบเลื่อนฝั่งข้างซ้ายเข้ามาฝั่งขวา (จากความกว้าง 0 ถึง 100%)
เลื่อนเข้ามาจากด้านข้าง
/* เปิดเมนูเมื่อผู้ใช้คลิกองค์ประกอบ <span> */ function openNav() { document.getElementById("myNav").style.width = "100%"; } /* ปิดเมนูเมื่อผู้ใช้คลิกที่สัญลักษณ์ "x" ในเคลือบ */ function closeNav() { document.getElementById("myNav").style.width = "0%"; }
ตัวอย่างด้านล่างนี้จะทำให้เมนูที่ปิดบนระนาบเลื่อนลงจากด้านบน (จากความสูง 0 ถึง 100%)
คำเตือน:ในตัวอย่างนี้ โปรดจำหนดว่า CSS นี้มีความแตกต่างเล็กน้อยจากตัวอย่างที่แล้ว (ความสูงเริ่มต้นเป็น 0 และความกว้างเป็น 100%,และ overflow-y
สำหรับ ซ่อน
(ห้ามเลื่อนตัวในแนวตั้ง,ยกเว้นจอเล็ก):
เลื่อนลงจากด้านบน
/* เปิด */ function openNav() { document.getElementById("myNav").style.height = "100%"; } /* ปิด */ function closeNav() { document.getElementById("myNav").style.height = "0%"; }
ตัวอย่างนี้เปิดเมนูนำทางโดยไม่มีแอนิเมชัน:
เปิดเมนูโดยไม่มีแอนิเมชัน
/* เปิด */ function openNav() { document.getElementById("myNav").style.display = "block"; } /* ปิด */ function closeNav() { document.getElementById("myNav").style.display = "none"; }
相关页面
教程:CSS 导航栏