โปรดทราบว่าหากมีเครื่องหมายคำพูดเดี่ยวในโค้ดที่อยู่ใน echo "" จะต้องหลีกเลี่ยงเครื่องหมายคำพูดเหล่านั้น เช่น ใส่แบ็กสแลช (\") ไว้หน้าแต่ละรายการโดยไม่มีวงเล็บ
โดยทั่วไปแล้วมันก็ปรากฏออกมาตามที่ปรากฏ คุณจะต้องตัดสินใจด้วยตัวเองว่าจะแนบสิ่งนี้กับหัวข้อของคุณโดยเฉพาะอย่างไร เมื่อคุณมีเวลา การ "ระดมสมอง" ก็เป็นเรื่องสนุกเช่นกัน ขอบคุณ
ขอให้โชคดี! พบกันเร็ว ๆ นี้ในหน้าของเว็บไซต์บล็อก
คุณอาจจะสนใจ
WebPoint PRO เป็นธีม WordPress แบบตอบสนองพร้อมฟังก์ชันการทำงานที่หลากหลายและการเพิ่มประสิทธิภาพกลไกค้นหาทางเทคนิคที่มีความสามารถ
Share42 - สคริปต์สำหรับเพิ่มปุ่มโซเชียลเน็ตเวิร์กและบุ๊กมาร์กลงในไซต์ (มีตัวเลือกแผงลอย)
เมื่อสร้างเว็บไซต์ มักจะต้องดูเมนูแนวนอนซึ่งมีการนำทางหลักของเว็บไซต์ วิธีการ “แก้ไข” เมนูแนวนอนนั้นสะดวกจากมุมมองของผู้เข้าชมที่ “มีการนำทางอยู่เสมอ” ไม่ว่าคุณจะหมุนวงล้อลงหรือขึ้นมากเพียงใด
แก้ไขเมนูแนวนอนด้วย CSS: ตำแหน่ง: แก้ไขแล้ว ประการหนึ่ง ทุกอย่างเป็นเรื่องง่ายและง่ายต่อการแก้ไขโดยใช้ CSS ในเวลาไม่นาน ตัวอย่างเค้าโครง HTML ของเมนูแนวนอนคงที่:
- บ้าน
- ข่าว
- รายชื่อผู้ติดต่อ
- ค้นหา
[เนื้อหาหน้า] [ส่วนท้ายของไซต์]เค้าโครง CSS ของเมนูแนวนอนคงที่:
# เมนูด้านบนเกือบคงที่ (ตำแหน่ง: คงที่; ด้านบน: 10px; ซ้าย: 0; ความสูง: 30px; ความกว้าง: 100%; ระยะขอบ: 0; )
ตอนนี้เรามาตั้งค่าการเยื้องสำหรับเนื้อหาของหน้าให้เท่ากับความสูงของเมนู:
#content ( ขอบด้านบน: 30px; )
และตอนนี้เราก็ "เกือบ" สำเร็จแล้ว เมนูนี้จะปรากฏแก่ผู้เยี่ยมชมเสมอ แต่เราควรทำอย่างไรหากเรามีส่วนหัวของเว็บไซต์ในการออกแบบของเรา ตามด้วยเมนู และในส่วนหัวเรามีโลโก้ คำขวัญของเว็บไซต์ และแบนเนอร์
เราสามารถแก้ไขส่วนหัวของไซต์ได้โดยทำให้การเยื้องเนื้อหามีความสูงเท่ากับส่วนหัวและเมนู พร้อมทั้งการเยื้องระหว่างทั้งสอง แต่มีปัญหาเกิดขึ้น เราจำกัดพื้นที่ในการดูอย่างมากสำหรับผู้เยี่ยมชมเพื่อดูเนื้อหาของหน้า ตัวเลือกในการละทิ้งหมวกไม่เหมาะกับเราเลย
แก้ไขเมนูแนวนอนโดยใช้จาวาสคริปต์ ลองพิจารณาตัวเลือกเมื่อเมนู "ไป" ด้านหลังส่วนหัวของไซต์ แต่ถ้าผู้เยี่ยมชมเลื่อนลงอย่างแข็งขัน เมนูจะ "คงที่" ที่ด้านบนและยังคงอยู่ที่เดิม ส่วนหัวของไซต์ไม่สามารถมองเห็นได้ หากผู้เยี่ยมชมกลับไปที่ส่วนหัวของหน้า เมนูจะ "กลายเป็น" ในตำแหน่ง "ด้านหลังส่วนหัวของไซต์" เริ่มต้นด้วย ต่อไปนี้คือเค้าโครง HTML ที่สมบูรณ์ของเค้าโครงหน้าตัวอย่าง:
โลโก้เว็บไซต์ สโลแกนเว็บไซต์ แบนเนอร์
- บ้าน
- ข่าว
- รายชื่อผู้ติดต่อ
- ค้นหา
[เนื้อหาหน้า] [ส่วนท้ายของไซต์]เทมเพลตเว็บไซต์ของเราประกอบด้วยพื้นที่ทั่วไปหลายประการ:
- ส่วนหัวของไซต์ – #หัวข้อ, สูง 150px
- เมนูแนวนอน – #เมนูบน-เกือบคงที่– ความสูง 30px,
- พื้นที่ข้อมูลหลักของหน้า – #เนื้อหา,
- ส่วนท้ายของไซต์ - #ส่วนท้าย.
นี่คือเค้าโครง CSS:
#menu-top-เกือบคงที่ ( ตำแหน่ง: คงที่; ระยะขอบ: 0; ซ้าย: 0; บน: 150px; ความสูง: 30px; ) #header ( จอแสดงผล: บล็อก; ความสูง: 150px; ล้น: ซ่อนไว้; ตำแหน่ง: สัมพันธ์; ระยะขอบ - ด้านล่าง: 55px; ) #menu-top-เกือบคงที่ ul, #menu-top-เกือบคงที่ li( list-style: none; ระยะขอบ: 0; padding: 0; ) #menu-top-เกือบคงที่ ul ( display: block; text-align: center; width: 100%; float: left; ) #menu-top-เกือบคงที่ ul li( display: inline; line-height: 30px; width: 120px; padding: 0 5px ; การจัดข้อความ: กึ่งกลาง; )
ขั้นแรก ให้ตั้งค่าการเยื้องจากส่วนหัวไปยังเนื้อหาให้เท่ากับความสูงของเมนูของเรา + การเยื้องเล็กๆ ที่มีระยะขอบเพื่อความสวยงาม #header ( ขอบด้านล่าง: 55px; ) . มาแก้ไขเมนูของเราด้านหลังส่วนหัว: #menu-top-almost-fixed( position: fixed; margin: 0; left: 0; top: 150px; height: 30px; ) .
ตอนนี้มาตรวจสอบให้แน่ใจว่าเมื่อเลื่อน เมนูจะ "แก้ไข" ที่ด้านบนของหน้าทุกประการ ลองใส่จาวาสคริปต์ต่อไปนี้ระหว่าง และ :
จาวาสคริปต์:
วาร์ ม1 = 150; /* ความสูงของส่วนหัวเป็นพิกเซล */ var m2 = 2; /* การเยื้องเมื่อมองไม่เห็นส่วนหัวอีกต่อไประหว่างการเลื่อน */ var menuID = "menu-top-เกือบคงที่"; /* id ของเมนูแนวนอนที่จะปักหมุด */ var menuOpacityOnChange = "0.7"; /* ความโปร่งใสของเมนูเมื่อเลื่อน: 1 - ทึบแสง, 0.5 - โปร่งแสง 0.0 - โปร่งใสทั้งหมด */ var menuOpacityOnChangeIE = menuOpacityOnChange * 100; /* ฟังก์ชั่นสำหรับการพิจารณาข้ามเบราว์เซอร์ของการเยื้องจากด้านบนของเอกสารถึงตำแหน่งปัจจุบันของตัวเลื่อนเลื่อน */ ฟังก์ชั่น getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "number" ) ( // scrOfY ที่สอดคล้องกับ Netscape = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( // สอดคล้องกับ DOM scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) ส่งคืน scrOfY; ) /* ฟังก์ชันที่ตั้งค่าช่องว่างด้านบนสำหรับการลอยตัว เมนูแนวนอนคงที่ขึ้นอยู่กับตำแหน่งตัวเลื่อนและส่วนหัวการมองเห็น */ ฟังก์ชั่น marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "undef" && s)( if (top +ม2< m1) {
s.style.top = (m1-top) + "px";
s.style.filter = s.style.filter.replace("progid:DXImageTransform.Microsoft.Alpha(opacity="+menuOpacityOnChangeIE+")","");
s.style.opacity = "1";
} else {
s.style.top = m2 + "px";
s.style.opacity = menuOpacityOnChange;
s.style.filter = s.style.filter.replace("progid:DXImageTransform.Microsoft.Alpha(opacity="+menuOpacityOnChangeIE+")","");
s.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+menuOpacityOnChangeIE+")";
}
}
}
/** функция регистрирует
вычисление позиции
«плавающего» меню при прокрутке страницы
**/
function setMenuPosition(){
if(typeof window.addEventListener != "undefined"){
window.addEventListener("scroll", marginMenuTop, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onscroll", marginMenuTop);
}
marginMenuTop();
}
/** регистрируем вызов
необходимых функций после
загрузки страницы **/
if(typeof window.addEventListener != "undefined"){
window.addEventListener("load", setMenuPosition, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onload", setMenuPosition);
}
คุณสามารถดูตัวอย่างการใช้งานได้โดยไปที่ลิงก์นี้และใช้ล้อเลื่อน ดังนั้นทุกอย่างจึงง่ายที่นี่ ในการตั้งค่าเราส่งพารามิเตอร์ต่อไปนี้ไปยังสคริปต์:
- วาร์ ม1 = 150; - ความสูงของส่วนหัวเป็นพิกเซล
- วาร์ ม2 = 2; - การเยื้องเมื่อไม่สามารถมองเห็นส่วนหัวอีกต่อไปในขณะที่เลื่อน
- var menuID = “เมนูด้านบนเกือบคงที่”; - id ของเมนูแนวนอนที่จะปักหมุด
- var menuOpacityOnChange = “0.7”; - ความโปร่งใสของเมนูเมื่อเลื่อน:
- 1 - ทึบแสง
- 0.5 – โปร่งแสง
- 0.0 - โปร่งใสโดยสมบูรณ์
ในเวอร์ชันนี้ เราได้ "ปรับแต่ง" เมนูของเราเล็กน้อย และเมื่อเลื่อนดู เราจะเพิ่มความโปร่งแสงลงไป ตัวเลือกแบบคลาสสิกจะแนะนำตัวเองทันทีเมื่อเราไม่เปลี่ยนความโปร่งใสของเมนู แต่เพียงสร้างพื้นหลังสำหรับเมนูในรูปแบบของพื้นหลังด้วยสีเมนูและเส้นขอบโปร่งแสงที่ต่ำกว่า (ซึ่งการไล่ระดับสีจะ "เปลี่ยน" อย่างราบรื่น ” จากสีทึบไปจนถึงสีโปร่งใส):
มาเปลี่ยนเค้าโครง CSS เล็กน้อยสำหรับเมนูคงที่แนวนอนของเรา:
#menu-top-เกือบคงที่ (ตำแหน่ง: คงที่; ระยะขอบ: 0; ซ้าย: 0; ด้านบน: 150px; ความสูง: 30px; พื้นหลัง: url (./images/white-gradient-l.png) ล่างซ้าย ซ้ำ-x ; )
ทีนี้มามอบโค้ดจาวาสคริปต์ที่แก้ไขแล้ว ซึ่งเราจะวางไว้ระหว่าง และ :
จาวาสคริปต์:
วาร์ ม1 = 150; /* ความสูงของส่วนหัวเป็นพิกเซล */ var m2 = 0; /* การเยื้องเมื่อมองไม่เห็นส่วนหัวอีกต่อไประหว่างการเลื่อน */ var menuID = "menu-top-เกือบคงที่"; /* ฟังก์ชั่นสำหรับการพิจารณาข้ามเบราว์เซอร์ของการเยื้องจากด้านบนของเอกสารถึงตำแหน่งปัจจุบันของตัวเลื่อนเลื่อน */ ฟังก์ชั่น getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "number" ) ( // scrOfY ที่สอดคล้องกับ Netscape = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( // สอดคล้องกับ DOM scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) ส่งคืน scrOfY; ) /* ฟังก์ชันที่ตั้งค่าช่องว่างด้านบนสำหรับการลอยตัว เมนูแนวนอนคงที่ขึ้นอยู่กับตำแหน่งตัวเลื่อนและส่วนหัวการมองเห็น */ ฟังก์ชั่น marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "undef" && s)( if (top +ม2< m1) {
s.style.top = (m1-top) + "px";
} else {
s.style.top = m2 + "px";
}
}
}
/** функция регистрирует
вычисление позиции
«плавающего» меню при прокрутке страницы
**/
function setMenuPosition(){
if(typeof window.addEventListener != "undefined"){
window.addEventListener("scroll", marginMenuTop, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onscroll", marginMenuTop);
}
}
/** регистрируем вызов
необходимых функций после
загрузки страницы **/
if(typeof window.addEventListener != "undefined"){
window.addEventListener("load", setMenuPosition, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onload", setMenuPosition);
}
ดังนั้นทุกอย่างจึงง่ายที่นี่ ในการตั้งค่าเราส่งพารามิเตอร์ต่อไปนี้ไปยังสคริปต์:
- วาร์ ม1 = 150; - ความสูงของส่วนหัวเป็นพิกเซล
- วาร์ ม2 = 0; - การเยื้องเมื่อไม่สามารถมองเห็นส่วนหัวอีกต่อไประหว่างการเลื่อน
เมนูใช้งานได้ดี แต่ถ้าคุณโหลดหน้านี้ซ้ำ เมนูจะปรากฏขึ้นพร้อมกับการเยื้องแรก หากเกิดปัญหาดังกล่าวคุณจะต้องเรียกเมนูหลังจากโหลดหน้าหนึ่งครั้ง เมื่อต้องการทำเช่นนี้ ให้เปลี่ยนโค้ดการเรียกใช้ฟังก์ชันจาก:
ฟังก์ชัน setMenuPosition())( if(typeof window.addEventListener != "unknown")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "unknown")( window.attachEvent ( "onscroll", marginMenuTop); ) );
ไปที่รหัสต่อไปนี้:
ฟังก์ชัน setMenuPosition())( if(typeof window.addEventListener != "unknown")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "unknown")( window.attachEvent ( "onscroll", marginMenuTop); ) marginMenuTop(); );
หลังจากโหลดเพจแล้ว เราจะเรียกใช้ฟังก์ชัน MarginMenuTop ทันที ซึ่งจะตรวจสอบตำแหน่งของเมนูบนเพจและใช้สไตล์ที่ต้องการ
การใช้เมนูที่แก้ไขบางส่วนโดยใช้ปลั๊กอิน Afixx jQuery จาก Twitter Bootstrap เพื่อความต่อเนื่องของหัวข้อนี้ เราได้เขียนบทความสำหรับคุณเกี่ยวกับการนำเมนูที่เกือบจะตายตัวไปใช้โดยใช้ปลั๊กอิน jQuery Affix จากเฟรมเวิร์ก Bootstrap ของ Twitter
เมื่อเร็ว ๆ นี้เทรนด์ได้กลายเป็นแฟชั่น: เมนูคงที่เมื่อเลื่อนหน้า โดยปกติจะเป็นเมนูแนวนอนบนไซต์ Landing Page
วิธีการทำงานคือเมื่อเพจโหลด เมนูจะอยู่ในตำแหน่งใดตำแหน่งหนึ่งบนเพจ (เช่น ใต้ "ส่วนหัว") และเมื่อคุณเลื่อนเพจ เมนูจะได้รับการแก้ไขที่ด้านบนของหน้าต่างเบราว์เซอร์และ ไม่เลื่อนเหมือนเนื้อหาอื่นๆ
หากผู้เยี่ยมชมเลื่อนหน้าขึ้นไปและไปถึงจุดเริ่มต้นของหน้า เมนูจะกลับไปที่ตำแหน่งเดิม ดังนั้นผู้เยี่ยมชมไม่ว่าจะอยู่ที่ใดก็ตามบนหน้าก็สามารถใช้งานและไปที่หน้าอื่น ๆ ของเว็บไซต์ได้ สะดวกมากและเป็นไปตามหลักการใช้งาน
ตอนนี้ฉันจะบอกคุณถึงวิธีการใช้เมนูดังกล่าวโดยใช้เวลาน้อยที่สุดและไม่ต้องอาศัยความช่วยเหลือจากผู้เชี่ยวชาญ
ขั้นแรก เราต้องเชื่อมต่อไลบรารี jQuery สำหรับไซต์
<
script src=
"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"
>
คุณสามารถเชื่อมต่อในพื้นที่หรือผ่านทาง Google
หากต้องการเชื่อมต่อภายในเครื่อง คุณจะต้องดาวน์โหลดไฟล์ jQuery จากเว็บไซต์อย่างเป็นทางการ http://jquery.com/
ซีเอสเอส
จาวาสคริปต์
ในสคริปต์เราสร้างตัวแปร 2 ตัวโดยเราจะบันทึกค่าความสูงของส่วนหัวและการเยื้องของบล็อกด้วยเมนูที่ด้านบน อาจไม่มีการเยื้อง (เช่นในกรณีนี้) จากนั้นเราเขียนตัวจัดการสำหรับเหตุการณ์ onScroll ของวัตถุหน้าต่าง ในนั้นโดยใช้เมธอด scrollTop() เราจะคำนวณระยะห่างจากด้านบนของหน้าถึงตำแหน่งปัจจุบันของ scroller จากการคำนวณ เราวางตำแหน่งบล็อกด้วยเมนู
ทั้งหมดนี้ต้องขอบคุณโซลูชั่นง่ายๆ ที่ทำให้คุณสามารถมีเมนูคงที่ที่สวยงามซึ่งจะไม่เลื่อนผ่านเมื่อเลื่อนส่วนหลักของเว็บไซต์
สิ่งแรกที่เราจะทำคือวางโค้ด HTML ของเราในตำแหน่งที่คุณต้องการดูเมนูบนเว็บไซต์ของคุณ
- บ้าน
- เวิร์ดเพรส
- HTML5&CSS3
- PHP
เมนูได้รับการกำหนดคลาสเริ่มต้น ซึ่ง jquery ของเราจึงสามารถระบุได้ว่าบล็อกนี้จำเป็นต้องปักหมุดไว้ด้านบนสุด
2. รหัส jQuery ในส่วนหัว ก่อนส่วนหัวปิด ให้ใส่โค้ด ตามที่ฉันเขียนไว้ข้างต้น มันจะกำหนดบล็อกด้วยค่าเริ่มต้นของคลาส และหลังจากการเลื่อนจะกำหนดคลาสให้คงที่ คุณสามารถเปลี่ยนชื่อชั้นเรียนได้หากต้องการ แต่เพียงระวังและอย่าพลาดสิ่งใด ๆ ไม่เช่นนั้นทุกอย่างจะหยุดทำงาน คุณต้องเปลี่ยนใน jQuery, HTML และ CSS
$(เอกสาร).ready(function())( var $menu = $("#menu"); $(window).scroll(function())( if ($(this).scrollTop() > 100 && $ menu. hasClass("default"))( $menu.fadeOut("fast",function())( $(this).removeClass("default") .addClass("fixed transbg") .fadeIn("fast") ; )) ; ) อื่น ๆ if($(this).scrollTop()