jQuery Academy · บทเรียน

เอฟเฟกต์สลับและเลื่อนขั้นสูง

เชี่ยวชาญการใช้ .slideToggle(), .fadeToggle() และ .animate() ในรูปแบบซับซ้อน เพื่อสร้างเอฟเฟกต์แสดง/ซ่อนและการเปลี่ยนผ่านที่ราบรื่น ตอบสนองได้ดี และสวยงาม

บทเรียน 3 จาก 311 ขั้นตอน

เอฟเฟกต์สลับและเลื่อนขั้นสูง เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การต่อและจัดคิวภาพเคลื่อนไหว
  2. การปรับความนุ่มนวลและการเรียกกลับของภาพเคลื่อนไหวแบบกำหนดเอง
  3. เอฟเฟกต์สลับและเลื่อนขั้นสูง
← กลับไปที่ jQuery Academy