0Pricing
React Academy · บทเรียน

useTrail และ useChain สำหรับลำดับแอนิเมชัน

ทำให้แอนิเมชันของหลายองค์ประกอบเริ่มเหลื่อมกันด้วย useTrail และควบคุมลำดับด้วย useChain

useTrail และ useChain สำหรับลำดับแอนิเมชัน เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

useTrail สำหรับแอนิเมชันแบบเหลื่อมจังหวะ

useTrail(count, config) จะสร้างสปริงจำนวน count ตัวที่แอนิเมชันต่อเนื่องกัน โดยกำหนดช่วงหน่วงระหว่างแต่ละตัวได้ เมื่อเริ่มลำดับ ตัวแรกจะแอนิเมชันทันที ตัวที่สองจะเริ่มช้าลงเล็กน้อย ตัวที่สามจะเริ่มหลังจากนั้น และต่อไปเรื่อย ๆ ทำให้เกิดเอฟเฟกต์การแผ่กระจายหรือการเรียงต่อกัน

ค่าที่ useTrail ส่งคืน

useTrail ส่งคืนอาร์เรย์ของออบเจ็กต์สปริง โดยมีหนึ่งออบเจ็กต์ต่อรายการ แต่ละสปริงมีโครงสร้างเหมือนกัน (มีคีย์เดียวกัน) แต่เริ่มแอนิเมชันในเวลาที่เหลื่อมกัน คุณจะแมปทั้งอาร์เรย์สปริงและอาร์เรย์รายการของคุณพร้อมกัน เพื่อเรนเดอร์แต่ละรายการที่เคลื่อนไหวด้วยสปริงที่ตรงกัน

การใช้ลำดับสปริงกับรายการ

เรนเดอร์รายการแบบเรียงลำดับโดยแมปผ่านอาร์เรย์สปริง: trail.map((spring, i) => React.createElement(animated.div, { style: spring, key: items[i].id }, items[i].content)) animated.div แต่ละตัวจะได้รับออบเจ็กต์สปริงของตัวเอง รายการต่าง ๆ จึงแอนิเมชันต่อเนื่องกัน สปริงจะทำงานตามลำดับดัชนี: 0, 1, 2, 3...

การควบคุมทิศทางของลำดับสปริง

useTrail รองรับรูปแบบตัวสลับสำหรับแอนิเมชันไปข้างหน้าและย้อนกลับ ส่งสถานะบูลีน open เพื่อควบคุมทิศทาง: เมื่อสถานะเปิดเป็นจริง ลำดับสปริงจะแอนิเมชันจากซ่อนอยู่ไปเป็นมองเห็นได้ และเมื่อเป็นเท็จ จะแอนิเมชันย้อนกลับจากมองเห็นได้ไปเป็นซ่อนอยู่ ลำดับสปริงจะย้อนลำดับโดยอัตโนมัติ รายการต่าง ๆ จึงแอนิเมชันออกตามลำดับย้อนกลับ (เข้าหลังสุด ออกก่อนสุด)

การกำหนดค่าและจังหวะเวลาของลำดับสปริง

ออบเจ็กต์การกำหนดค่าสำหรับ useTrail เหมือนกับของ useSpring ได้แก่ แรงตึง แรงเสียดทาน และมวล ช่วงหน่วงระหว่างรายการจะขึ้นอยู่กับเวลาที่สปริงแต่ละตัวใช้ในการเริ่มทำงาน ซึ่งถูกควบคุมโดยฟิสิกส์ของสปริงโดยรวม สปริงที่แข็งกว่าและมีแรงตึงสูงกว่าจะสร้างการเหลื่อมจังหวะที่เร็วกว่า ส่วนสปริงที่นุ่มนวลกว่าจะสร้างการเรียงต่อกันที่ยาวนานกว่า

useSpringRef สำหรับ useChain

useSpringRef() จะสร้างรีฟที่คุณนำไปผูกกับฮุกสปริงผ่านตัวเลือก ref รีฟนี้ช่วยให้ useChain ควบคุมได้ว่าสปริงนั้นจะเริ่มทำงานเมื่อใด คุณจะสร้างรีฟหนึ่งตัวต่อสปริงหรือลำดับสปริงที่ต้องการจัดลำดับ: const springRef = useSpringRef() จากนั้นส่งรีฟเข้าไปดังนี้: useSpring({ ref: springRef, ... })

useChain สำหรับการจัดลำดับต่อเนื่อง

useChain([ref1, ref2, ref3], [0, 0.5, 0.8]) จะจัดลำดับสปริงหรือลำดับสปริงหลายชุด อาร์กิวเมนต์แรกคืออาร์เรย์ของ springRefs ตามลำดับที่ควรทำงาน อาร์กิวเมนต์ที่สองคืออาร์เรย์ของการประทับเวลาระหว่าง 0 ถึง 1 ซึ่งระบุว่าสปริงแต่ละตัวจะเริ่มทำงานเมื่อใด โดยแสดงเป็นสัดส่วนของกรอบเวลารวม

ความหมายของการประทับเวลาใน useChain

ใน useChain การประทับเวลาอย่าง [0, 0.5] หมายความว่าสปริง 1 เริ่มทำงานที่ 0% ของลำดับ และสปริง 2 เริ่มทำงานที่ 50% ของลำดับ อาร์กิวเมนต์ที่สามซึ่งเป็นตัวเลือกคือกรอบเวลารวมในหน่วยมิลลิวินาที (ค่าเริ่มต้น 1000ms) ดังนั้นเมื่อใช้ [0, 0.5] และ 2000ms สปริง 1 จะเริ่มที่ 0ms และสปริง 2 จะเริ่มที่ 1000ms

ตัวอย่างการใช้ useChain ในทางปฏิบัติ

รูปแบบที่พบบ่อยคือ แอนิเมชันให้คอนเทนเนอร์ขยายตัว (ใช้ useSpring สำหรับขนาด) จากนั้นแอนิเมชันให้รายการด้านในค่อย ๆ ปรากฏ (ใช้ useTrail สำหรับรายการ) ผูกรีฟเข้ากับทั้งสองส่วน แล้วใช้ useChain([sizeRef, trailRef], [0, 0.5]) เพื่อให้คอนเทนเนอร์ขยายก่อน จากนั้นรายการจึงค่อย ๆ ปรากฏเมื่อผ่านไปครึ่งหนึ่ง วิธีนี้สร้างแอนิเมชันการปรากฏสองระยะในแบบภาพยนตร์

รูปแบบการเปลี่ยนหน้า

useChain เหมาะอย่างยิ่งสำหรับการเปลี่ยนหน้า เมื่อนำทางระหว่างหน้า ให้จัดลำดับแอนิเมชันการออกของหน้าเก่าเข้ากับแอนิเมชันการเข้าของหน้าใหม่ โดยให้แอนิเมชันการออกเสร็จก่อน (การประทับเวลา 0) แล้วจึงเริ่มแอนิเมชันการเข้า (การประทับเวลา 0.6) วิธีนี้สร้างการส่งต่อที่ราบรื่นแทนการสลับหน้าอย่างฉับพลัน

พารัลแลกซ์ด้วย useTrail

useTrail สามารถสร้างเอฟเฟกต์การเลื่อนแบบพารัลแลกซ์ได้ ด้วยการทำให้รายการต่าง ๆ เคลื่อนไหวด้วยความเร็วต่างกันตามตำแหน่งในลำดับ รายการที่อยู่ลึกกว่าในลำดับจะเริ่มช้ากว่า และอาจใช้การกำหนดค่าที่แตกต่างกัน (แรงตึงต่ำกว่า) ทำให้เคลื่อนที่ช้าลง จังหวะเวลาที่อิงตามความลึกนี้จำลองเอฟเฟกต์พารัลแลกซ์ของวัตถุที่อยู่ห่างจากกันต่างกัน

กลไกการเหลื่อมจังหวะของ useTrail

useTrail สร้างช่วงหน่วงที่เหลื่อมกันระหว่างรายการต่าง ๆ ในแอนิเมชันได้อย่างไร

ทบทวนบทเรียน: useTrail และ useChain

useTrail(count, config) จะสร้างสปริงจำนวน count ตัวที่แอนิเมชันต่อเนื่องกัน ทำให้รายการปรากฏแบบเหลื่อมจังหวะ แมปอาร์เรย์สปริงและรายการพร้อมกันเพื่อเรนเดอร์ useSpringRef() จะสร้างรีฟที่ useChain ใช้สำหรับจัดลำดับ useChain([ref1, ref2], [0, 0.5]) จะควบคุมสปริงหลายตัวด้วยการประทับเวลาแบบเศษส่วน ทั้งสองอย่างนี้ช่วยให้สร้างลำดับหลายระยะที่ซับซ้อนได้ เช่น แอนิเมชันขยายแล้วเปิดเผย

คำถามที่พบบ่อย

บทเรียน “useTrail และ useChain สำหรับลำดับแอนิเมชัน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “useTrail และ useChain สำหรับลำดับแอนิเมชัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “useTrail และ useChain สำหรับลำดับแอนิเมชัน”

ทำให้แอนิเมชันของหลายองค์ประกอบเริ่มเหลื่อมกันด้วย useTrail และควบคุมลำดับด้วย useChain คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “useTrail และ useChain สำหรับลำดับแอนิเมชัน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม

ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. พื้นฐาน React Spring: ฮุก useSpring
  2. คอมโพเนนต์แบบแอนิเมชันและการอินเทอร์โพเลตสไตล์
  3. useTrail และ useChain สำหรับลำดับแอนิเมชัน
  4. แอนิเมชันที่ขับเคลื่อนด้วยท่าทางด้วย use-gesture
← กลับไปที่ React Academy