ข้อมูลพื้นฐานของการค่อยๆ เปลี่ยน

เรียนรู้วิธีปรับให้ภาพนุ่มนวลและการถ่วงน้ำหนักภาพเคลื่อนไหว

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

สรุป

  • การค่อยๆ เปลี่ยนช่วยให้ภาพเคลื่อนไหวดูเป็นธรรมชาติมากขึ้น
  • เลือกภาพเคลื่อนไหวที่ใช้งานง่ายสำหรับองค์ประกอบ UI
  • หลีกเลี่ยงภาพเคลื่อนไหวที่ค่อยๆ เข้าหรือช้าไป ยกเว้นกรณีที่คุณจะทำให้เป็นภาพเคลื่อนไหวสั้นๆ เพราะอาจทำให้ผู้ใช้ปลายทางรู้สึกเอื่อยๆ

ในแอนิเมชันคลาสสิก คำว่าการเคลื่อนไหวที่เริ่มต้นอย่างช้าๆ และเร่งความเร็วคือ "ค่อยๆ เข้า" และสำหรับการเคลื่อนไหวที่เริ่มต้นอย่างรวดเร็วและค่อยๆ ลดความเร็วคือ "ช้า" คำศัพท์ที่ใช้กันโดยทั่วไปบนเว็บคือ "เข้าใจได้ง่าย" และ "ค่อยๆ ออก" ตามลำดับ บางครั้งทั้ง 2 อย่างจะรวมเข้าด้วยกัน ซึ่งเรียกว่า "ค่อยๆ เข้า" การค่อยๆ เปลี่ยนคือขั้นตอนการทำให้ภาพเคลื่อนไหวมีความรุนแรงหรือออกเสียงน้อยลง

การค่อยๆ เปลี่ยนคีย์เวิร์ด

ทั้งการเปลี่ยนและภาพเคลื่อนไหวของ CSS ช่วยให้คุณเลือกประเภทการค่อยๆ เปลี่ยนที่ต้องการใช้สำหรับภาพเคลื่อนไหว คุณใช้คีย์เวิร์ดที่ส่งผลต่อการค่อยๆ เปลี่ยน (หรือ timing ที่บางครั้งก็เรียกว่า) ของภาพเคลื่อนไหวที่เป็นปัญหาได้ นอกจากนี้ คุณยังกําหนดการค่อยๆ เปลี่ยนด้วยตนเองได้ ซึ่งให้อิสระแก่คุณมากขึ้นในการแสดงลักษณะของแอป

คีย์เวิร์ดบางส่วนที่คุณใช้ใน CSS ได้มีดังนี้

  • linear
  • ease-in
  • ease-out
  • ease-in-out

ที่มา: CSS Transitions, W3C

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

ภาพเคลื่อนไหวเชิงเส้น

เส้นโค้งของภาพเคลื่อนไหวแบบการค่อยๆ เปลี่ยนแบบเชิงเส้น

ภาพเคลื่อนไหวที่ไม่มีลักษณะการค่อยๆ เปลี่ยนเรียกว่าเชิงเส้น กราฟของการเปลี่ยนเชิงเส้นมีลักษณะดังนี้

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

ไม่ว่าคุณจะเขียนโค้ดภาพเคลื่อนไหวโดยใช้ CSS หรือ JavaScript คุณจะเห็นว่ามีตัวเลือกสำหรับการเคลื่อนที่เชิงเส้นเสมอ

ดูภาพเคลื่อนไหวเชิงเส้น

เพื่อให้บรรลุผลข้างต้นด้วย CSS โค้ดจะมีลักษณะดังนี้

transition: transform 500ms linear;

ภาพเคลื่อนไหวที่ใช้งานง่าย

เส้นโค้งของภาพเคลื่อนไหวค่อยๆ ออก

การค่อยๆ เปลี่ยนจะทำให้ภาพเคลื่อนไหวเริ่มเล่นเร็วกว่าแบบเชิงเส้นและลดลงในตอนท้าย

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

ดูภาพเคลื่อนไหวที่ใช้งานง่าย

มีหลายวิธีที่จะสร้างผลลัพธ์ได้อย่างง่ายดาย แต่วิธีที่ง่ายที่สุดคือคีย์เวิร์ด ease-out ใน CSS ดังนี้

transition: transform 500ms ease-out;

ภาพเคลื่อนไหวที่ใช้งานง่าย

เส้นโค้งของภาพเคลื่อนไหวค่อยๆ เข้า

ภาพเคลื่อนไหวในการค่อยๆ เปลี่ยนเริ่มต้นอย่างช้าๆ และสิ้นสุดอย่างรวดเร็ว ซึ่งตรงข้ามกับภาพเคลื่อนไหวแบบค่อยๆ เปลี่ยน

ภาพเคลื่อนไหวประเภทนี้เป็นเหมือนหินก้อนหนักที่ตกลงมา โดยจะเริ่มช้าๆ และกระแทกพื้นอย่างรวดเร็วพร้อมกับจังหวะที่เดือดปุดๆ

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

ดูภาพเคลื่อนไหวแบบง่าย

คุณจะใช้คีย์เวิร์ดของภาพเคลื่อนไหวได้ง่ายๆ ในลักษณะเดียวกับภาพเคลื่อนไหวแบบค่อยๆ ออกและเชิงเส้น

transition: transform 500ms ease-in;

ภาพเคลื่อนไหวค่อยๆ เข้า-ออก

เส้นโค้งของภาพเคลื่อนไหวค่อยๆ เข้า-ออก

การค่อยๆ เปลี่ยนทั้งในและนอกรถนั้นคล้ายกับการเร่งความเร็วและลดความเร็ว และการใช้อย่างรอบคอบก็จะให้ผลที่น่าตื่นตาตื่นใจมากกว่าการค่อยๆ ปล่อยความเร็ว

อย่าใช้ระยะเวลาของภาพเคลื่อนไหวที่นานเกินไป เนื่องจากความล่าช้าในการเริ่มต้นภาพเคลื่อนไหว โดยทั่วไปแล้ว ตัวเลขในช่วง 300-500 มิลลิวินาทีจะเหมาะสม แต่จำนวนที่แน่นอนจะขึ้นอยู่กับบรรยากาศของโปรเจ็กต์ แต่เนื่องจากการเริ่มต้นที่ช้า ช่วงกลางที่เร็ว ไปจนถึงช่วงท้ายแบบช้า ทำให้ภาพเคลื่อนไหวมีคอนทราสต์เพิ่มขึ้น ซึ่งค่อนข้างน่าพอใจสำหรับผู้ใช้

ดูภาพเคลื่อนไหวแบบค่อยๆ เข้า-ออก

หากต้องการใช้ภาพเคลื่อนไหวแบบค่อยๆ เข้าระบบ ให้ใช้คีย์เวิร์ด CSS ease-in-out ต่อไปนี้

transition: transform 500ms ease-in-out;