เอฟเฟกต์สลับและเลื่อนขั้นสูง
เชี่ยวชาญการใช้ .slideToggle(), .fadeToggle() และ .animate() ในรูปแบบซับซ้อน เพื่อสร้างเอฟเฟกต์แสดง/ซ่อนและการเปลี่ยนผ่านที่ราบรื่น ตอบสนองได้ดี และสวยงาม
เอฟเฟกต์สลับและเลื่อนขั้นสูง เป็นบทเรียน jQuery Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน jQuery Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส jQuery Academy มีบทเรียนทั้งหมด 3 บทเรียน
ยินดีต้อนรับสู่ Toggle ขั้นสูง
ในบทเรียนนี้ เราจะเจาะลึกเมธอดอันทรงพลังของ jQuery สำหรับสร้างเอฟเฟกต์แสดง/ซ่อนแบบไดนามิก คุณจะเชี่ยวชาญการใช้ .slideToggle(), .fadeToggle() และการใช้ .animate() สำหรับการเปลี่ยนผ่านแบบกำหนดเอง
เทคนิคเหล่านี้จำเป็นสำหรับการสร้างส่วนติดต่อผู้ใช้ที่โต้ตอบได้และสวยงาม
การเลื่อนองค์ประกอบด้วย slideToggle()
เมธอด .slideToggle() จะทำแอนิเมชันความสูงขององค์ประกอบที่ตรงกัน ทำให้องค์ประกอบเลื่อนขึ้นหรือลง หากองค์ประกอบแสดงอยู่ องค์ประกอบจะเลื่อนขึ้นเพื่อซ่อน หากซ่อนอยู่ องค์ประกอบจะเลื่อนลงเพื่อแสดง
เหมาะอย่างยิ่งสำหรับเมนูที่ยุบได้หรือส่วนเนื้อหาที่ขยายได้ ลองเรียกใช้ตัวอย่างนี้
// HTML for context:
// <button id="toggleButton">Toggle Panel</button>
// <div id="myPanel" style="background-color: lightblue; padding: 10px;">
// <p>This is a sliding panel!</p>
// </div>
$(document).ready(function() {
$("#toggleButton").click(function() {
$("#myPanel").slideToggle();
});
});ปรับแต่ง slideToggle()
คุณสามารถควบคุมความเร็วของแอนิเมชัน .slideToggle() ได้โดยส่งระยะเวลา (มิลลิวินาที หรือ 'slow', 'fast') นอกจากนี้ยังสามารถระบุ ฟังก์ชันเรียกกลับ ให้ทำงานเมื่อแอนิเมชันเสร็จสิ้นได้
.slideToggle(duration).slideToggle(duration, callback)
ลองปรับความเร็วในโค้ดด้านล่าง
// HTML for context:
// <button id="speedToggleBtn">Toggle Fast</button>
// <p id="speedPanel" style="background-color: #e0ffe0; padding: 10px;">
// I slide fast and then alert!
// </p>
$(document).ready(function() {
$("#speedToggleBtn").click(function() {
$("#speedPanel").slideToggle("fast", function() {
alert("Animation finished!");
});
});
});การทำให้องค์ประกอบจางด้วย fadeToggle()
เช่นเดียวกับ .slideToggle() เมธอด .fadeToggle() จะแสดงหรือซ่อนองค์ประกอบที่ตรงกันด้วยการทำแอนิเมชันความทึบ หากองค์ประกอบแสดงอยู่ องค์ประกอบจะค่อย ๆ จางหาย หากซ่อนอยู่ องค์ประกอบจะค่อย ๆ ปรากฏ
วิธีนี้จะสร้างเอฟเฟกต์การเปลี่ยนผ่านที่โปร่งใสและราบรื่น มาดูการทำงานกัน
// HTML for context:
// <button id="fadeToggleBtn">Toggle Fade</button>
// <div id="fadePanel" style="background-color: #ffe0e0; padding: 10px;">
// <p>This panel fades in and out!</p>
// </div>
$(document).ready(function() {
$("#fadeToggleBtn").click(function() {
$("#fadePanel").fadeToggle();
});
});ปรับแต่ง fadeToggle()
เช่นเดียวกับ .slideToggle() คุณสามารถปรับแต่งความเร็วและเพิ่มฟังก์ชันเรียกกลับให้กับ .fadeToggle() ได้ วิธีนี้ช่วยให้คุณเรียกใช้การกระทำต่อเนื่องหรือทำงานบางอย่างเมื่อการจางเสร็จสิ้น
.fadeToggle(duration).fadeToggle(duration, callback)
สังเกตการจางช้า ๆ และการเปลี่ยนสี
// HTML for context:
// <button id="customFadeBtn">Toggle Custom Fade</button>
// <p id="customFadePanel" style="background-color: #e0e0ff; padding: 10px;">
// I fade slowly and change color!
// </p>
$(document).ready(function() {
$("#customFadeBtn").click(function() {
$("#customFadePanel").fadeToggle(1000, function() {
$(this).css("color", "purple");
});
});
});ผสานการเลื่อนและการจาง
คุณสามารถรวม .slideToggle() และ .fadeToggle() เพื่อสร้างเอฟเฟกต์ที่ซับซ้อนยิ่งขึ้นได้ ตัวอย่างเช่น อาจทำให้องค์ประกอบเลื่อนลงพร้อมกับค่อย ๆ ปรากฏ หรือทำกลับกัน
เมื่อเรียกใช้ตามลำดับ เมธอดทั้งสองจะใช้งานเอฟเฟกต์ทีละรายการ หากต้องการเอฟเฟกต์ที่เกิดขึ้นพร้อมกันจริง ๆ มักนิยมใช้ .animate() (เราจะดูเรื่องนี้ต่อไป)
// HTML for context:
// <button id="mixedToggleBtn">Toggle Mixed</button>
// <div id="mixedPanel" style="background-color: #ffffe0; padding: 10px;">
// <p>I will slide and fade!</p>
// </div>
$(document).ready(function() {
$("#mixedToggleBtn").click(function() {
$("#mixedPanel").slideToggle(500);
$("#mixedPanel").fadeToggle(500);
});
});Toggle แบบง่ายพร้อมแอนิเมชัน
จำเมธอดพื้นฐาน .toggle() ได้ไหม เมธอดนี้เพียงแค่แสดงหรือซ่อนองค์ประกอบ อย่างไรก็ตาม ยังรับพารามิเตอร์ระยะเวลาและการเรียกกลับได้เช่นเดียวกับ .slideToggle() และ .fadeToggle()
เมื่อใช้ร่วมกับพารามิเตอร์แอนิเมชัน .toggle() จะทำงานเป็น .fadeToggle() โดยค่าเริ่มต้น
// HTML for context:
// <button id="simpleToggleBtn">Toggle with Animation</button>
// <p id="simpleTogglePanel" style="background-color: #f0f0f0; padding: 10px;">
// I toggle with a default fade effect.
// </p>
$(document).ready(function() {
$("#simpleToggleBtn").click(function() {
$("#simpleTogglePanel").toggle("slow", function() {
console.log("Toggle animation done!");
});
});
});สร้างเอฟเฟกต์ Toggle แบบกำหนดเอง
หากต้องการควบคุมอย่างเต็มที่ ให้ใช้เมธอด .animate() คุณสามารถทำแอนิเมชันให้คุณสมบัติ CSS เกือบทุกชนิดที่มีค่าเป็นตัวเลขได้ หากต้องการสร้างเอฟเฟกต์ Toggle แบบกำหนดเอง คุณสามารถทำแอนิเมชันให้คุณสมบัติอย่าง height, opacity หรือแม้แต่ left/top
หลักสำคัญคือการทำแอนิเมชันไปยังค่าที่ระบุ หรือใช้คีย์เวิร์ดพิเศษ 'toggle' กับคุณสมบัติอย่าง height หรือ width
// HTML for context:
// <button id="customAnimateBtn">Custom Animate Toggle</button>
// <div id="customAnimatePanel" style="background-color: lightgreen; padding: 10px; height: 100px; overflow: hidden;">
// <p>I animate my height to toggle!</p>
// </div>
$(document).ready(function() {
$("#customAnimateBtn").click(function() {
$("#customAnimatePanel").animate({
height: 'toggle' // Animates height to 'toggle' (show/hide)
}, 500);
});
});แอนิเมชันแบบกำหนดเองพร้อมกัน
.animate() แสดงความสามารถได้อย่างเต็มที่เมื่อคุณต้องการเปลี่ยนคุณสมบัติ CSS หลายรายการพร้อมกันเพื่อสร้างเอฟเฟกต์ Toggle แบบผสาน คุณสามารถทำแอนิเมชันให้ height และ opacity พร้อมกัน เพื่อสร้างเอฟเฟกต์การเลื่อนและการจาง
โปรดจัดการคุณสมบัติ display ด้วย หากต้องการให้องค์ประกอบหายไปจากเค้าโครงอย่างสมบูรณ์หลังจากทำแอนิเมชันความทึบจนมีค่าเป็น 0
// HTML for context:
// <button id="combinedAnimateBtn">Combined Toggle</button>
// <div id="combinedAnimatePanel" style="background-color: lightcoral; padding: 10px; height: 100px; opacity: 1; overflow: hidden;">
// <p>I slide AND fade!</p>
// </div>
$(document).ready(function() {
$("#combinedAnimateBtn").click(function() {
var panel = $("#combinedAnimatePanel");
if (panel.is(":visible")) {
panel.animate({
height: '0px',
opacity: '0'
}, 500, function() {
$(this).hide(); // Ensure display: none after animation
});
} else {
panel.show().animate({ // Show first, then animate
height: '100px',
opacity: '1'
}, 500);
}
});
});ทดสอบความรู้เรื่อง Toggle
เมธอด jQuery รายการใดต่อไปนี้สามารถใช้สร้างเอฟเฟกต์แสดง/ซ่อนแบบมีแอนิเมชันให้กับองค์ประกอบได้
สรุป Toggle และ Animate
ทำได้ดีมาก คุณเชี่ยวชาญเทคนิค jQuery ขั้นสูงสำหรับเอฟเฟกต์แสดง/ซ่อนแบบไดนามิกแล้ว
- เราได้สำรวจ
.slideToggle()สำหรับการเลื่อนในแนวตั้ง - เราใช้
.fadeToggle()สำหรับการเปลี่ยนผ่านความทึบอย่างราบรื่น - เราได้เห็นว่า
.toggle()ก็สามารถทำแอนิเมชันได้เช่นกัน - ที่สำคัญที่สุด คุณได้เรียนรู้การใช้
.animate()เพื่อสร้างเอฟเฟกต์ Toggle แบบกำหนดเองและแบบผสานอย่างสมบูรณ์ ทำให้ควบคุมคุณสมบัติ CSS หลายรายการได้อย่างละเอียด
ฝึกฝนต่อไปเพื่อสร้างส่วนติดต่อผู้ใช้ที่โต้ตอบได้อย่างน่าประทับใจ
เรียนรู้ JavaScript ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 22
- บทเรียน
- 48
คำถามที่พบบ่อย
บทเรียน “เอฟเฟกต์สลับและเลื่อนขั้นสูง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เอฟเฟกต์สลับและเลื่อนขั้นสูง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส jQuery Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส jQuery Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เอฟเฟกต์สลับและเลื่อนขั้นสูง”
เชี่ยวชาญการใช้ .slideToggle(), .fadeToggle() และ .animate() ในรูปแบบซับซ้อน เพื่อสร้างเอฟเฟกต์แสดง/ซ่อนและการเปลี่ยนผ่านที่ราบรื่น ตอบสนองได้ดี และสวยงาม คุณปฏิบัติ jQuery Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน jQuery Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน jQuery Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน
บทเรียน “เอฟเฟกต์สลับและเลื่อนขั้นสูง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน jQuery Academy นี้ได้ไหม
ได้ บทเรียน jQuery Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การต่อและจัดคิวภาพเคลื่อนไหว
- การปรับความนุ่มนวลและการเรียกกลับของภาพเคลื่อนไหวแบบกำหนดเอง
- เอฟเฟกต์สลับและเลื่อนขั้นสูง