ปุ่มที่ยุบลง
ถ้าทำไม่ดี การเคลื่อนไหวจะเป็นสิ่งแรกที่คนสังเกต: หัวข้อที่พุ่งเข้ามาขณะเลื่อน หน้าโหลด (preloader) ที่ขวาง
ด้านล่างนี้คือ งานที่การเคลื่อนไหวควรทำ วิธีทำให้เร็วและทุกคนใช้ได้ และ
micro-interaction คืออะไร?
Micro-interaction คือช่วงเวลาเล็ก ๆ ที่จบในตัว
หนังสือ Microinteractions ของ
| คืออะไร | ตัวอย่าง: ปุ่มส่งของฟอร์มติดต่อสอบถาม | |
|---|---|---|
| ตัวกระตุ้น (trigger) | สิ่งที่ทำให้เริ่ม | |
| กฎ (rules) | อะไรเกิดขึ้น ในลำดับใด | ตรวจช่อง |
| การ |
ปุ่มแสดงว่ากำลังทำงาน แล้ว |
|
| ลูปและโหมด (loops and modes) | การทำซ้ำ การจำกัดเวลา สถานะ |
ถ้าส่งไม่สำเร็จ จะอธิบายและให้ลองใหม่ ไม่ใช่ไอคอนหมุนไม่รู้จบ |
Motion design สำหรับ
4 งานที่การเคลื่อนไหวควรทำ
ก่อนอนุมัติแอนิเมชันใด ๆ ให้ถามว่ามันทำงานข้อไหน
1. ยืนยันการกระทำ
สถานะกดของปุ่ม เครื่องหมายถูกเมื่อ
2. แสดงสถานะ
เมนูเปิดอยู่ไหม ส่วนนี้ขยายอยู่หรือเปล่า หน้ายังโหลดอยู่ไหม?
3. บอกทิศทางผู้เข้าชม
แผงที่เลื่อนเข้ามาจากด้านที่ถูกเปิด หรือภาพย่อที่ขยายเป็นภาพใหญ่ แสดงว่าสิ่งต่าง ๆ มาจากไหนและไปที่ไหน
4. ดึงความสนใจ
สายตาถูกดึงดูดด้วยการเคลื่อนไหว จึงควรใช้อย่างระมัดระวัง
อย่างอื่นนอกจากนี้คือของตกแต่ง และต้องคุ้มกับต้นทุนด้านความเร็ว แบตเตอรี่ และความสนใจ การเคลื่อนไหวที่มี
จุดที่รายละเอียด เล็ก ๆ สำคัญที่สุด: ตอนจบของเส้นทาง
ความพยายามด้านแอนิเมชัน
หน้ายืนยัน
เมื่อมีคนกดส่ง ให้เปลี่ยนปุ่มทันทีเพื่อแสดงว่ากำลังทำงาน แล้วยืนยันเป็น
ข้อผิดพลาด
การเคลื่อนไหวเบา ๆ ครั้งเดียว ช่วยดึงสายตาไปยังช่องที่ต้องแก้ได้ แต่
หน้า 404
ประโยคหนึ่งใน
รายละเอียด เล็ก ๆ ไม่ใช่ลูกเล่น หรือ dark pattern
จิตวิทยาเดียวกันนี้
ระยะเวลา จังหวะ และความพอดี
การเคลื่อนไหวที่ดีเร็วพอที่ไม่มีใครต้องรอ และช้าพอที่จะเข้าใจได้
ต่อไปนี้เป็นจุด
| ประเภทการเคลื่อนไหว | จุด |
เหตุผล |
|---|---|---|
| การ |
100 ms หรือน้อยกว่า | ควรรู้สึกทันที |
| สวิตช์ |
ราว 150–250 ms | มองเห็นได้ แต่ไม่ |
| เมนู แผงด้านข้าง |
ราว 250–400 ms | ต้องเคลื่อนที่ไกลกว่า |
| การเปลี่ยนหน้าหรือ |
สั้นที่สุดเท่าที่ยังเข้าใจได้ชัด |
จังหวะการเคลื่อนไหว (easing)
ความเร็วคงที่ดูเป็นเครื่องจักร เพราะวัตถุจริงไม่ได้เริ่มหรือหยุดทันที:
- Ease-out (เริ่มเร็ว หยุดนุ่ม) สำหรับสิ่งที่กำลังเข้ามา หรือกำลัง
ตอบสนอง - Ease-in สำหรับสิ่งที่กำลังออกไป
- Ease-in-out สำหรับสิ่งที่ย้ายจากที่หนึ่งบนจอ ไปอีกที่หนึ่ง
- Linear เฉพาะการเคลื่อนไหว
ต่อเนื่อง เช่น ไอคอนหมุนระหว่าง โหลด
การเด้งและสปริงเป็นเรื่องของบุคลิกแบรนด์ แบรนด์ที่สงบแทบไม่ต้องใช้ ตามที่ คู่มือการ
ความพอดี
- ไม่มีอะไรขวาง
ผู้เข้าชม ไม่มีอินโทร preloader หรือการเปลี่ยนหน้าที่คนต้องนั่งรอ - การออกเร็วกว่าการเข้า และ
ข้อความ ที่กำลังถูกอ่าน ต้องอยู่นิ่ง - ภาษาการเคลื่อนไหวเดียว
กำหนด ระยะเวลา และเส้นโค้ง easing ไม่กี่แบบไว้ครั้งเดียวเป็น design token เพื่อให้ทุกคอมโพเนนต์เคลื่อนไหวแบบเดียวกัน ซึ่งเป็นประโยชน์ที่ได้ง่าย ๆ จาก design system - ใช้เอฟเฟกต์ของ page builder อย่างประหยัด ใน page builder ของ WordPress แอนิเมชันตอนปรากฏ เป็นการ
ตั้งค่า คลิกเดียวต่อองค์ประกอบ ซึ่งเป็นเหตุที่หัวข้อทุกอันลงเอยด้วยการเลื่อนเข้ามา
แอนิเมชันบนเว็บที่ไม่ทำให้ช้า
การเคลื่อนไหวเกี่ยวข้องกับ Core Web Vitals ทั้งสามตัว Google ถือว่าหน้าเว็บดี เมื่อ LCP (เวลาแสดงเนื้อหาหลัก) ไม่เกิน 2.5 วินาที INP (เวลา
ทำแอนิเมชันด้วย transform และ opacity
เบราว์เซอร์ย้าย ย่อขยาย และทำให้จางtransform และ opacity ได้โดยไม่ต้องtransform ไม่ถูกนับรวมใน CLS การทำแอนิเมชัน width, height, top, left หรือ margin บังคับให้เบราว์เซอร์
รักษาความไวในการตอบสนอง
INP วัดความหน่วง
อย่าซ่อนเนื้อหาไว้หลังเอฟเฟกต์
สคริปต์ scroll-reveal จำนวนมาก เริ่มจากซ่อนเนื้อหาไว้ แล้วค่อยทำให้ปรากฏเมื่อสคริปต์ทำงาน ถ้าสคริปต์ช้าหรือ
ระวังน้ำหนัก
ไฟล์แอนิเมชัน วิดีโอ
การเคลื่อนไหวที่ทุกคนใช้ได้
สำหรับคนที่มีความ
เคารพ prefers-reduced-motion
ระบบprefers-reduced-motion การลดไม่ได้แปลว่าไม่มีเลย: เปลี่ยนการเคลื่อนไหวเป็นการจางสั้น ๆ หรือการเปลี่ยนทันที และคงการ
/* Everyone gets feedback: an instant colour change */
.card:hover {
border-color: var(--accent);
}
/* Only visitors who have not asked for less motion get movement */
@media (prefers-reduced-motion: no-preference) {
.card {
transition: transform 200ms ease-out;
}
.card:hover {
transform: translateY(-4px);
}
}
เกณฑ์ WCAG 2.2 ที่เกี่ยวข้อง
| เกณฑ์ความสำเร็จ | ระดับ | ความหมายต่อการเคลื่อนไหว |
|---|---|---|
| 2.2.2 Pause, Stop, Hide | A | อะไรก็ตามที่เคลื่อนไหวเองนานเกินห้าวินาทีพร้อมกับเนื้อหาอื่น ต้องหยุดชั่วคราว หยุด หรือซ่อนได้ เช่น สไลด์ภาพหมุนเวียน แถบโลโก้ วิดีโอ |
| 2.3.1 Three Flashes (กะพริบไม่เกินสามครั้ง หรือต่ำกว่าเกณฑ์) | A | ไม่มีอะไรกะพริบเกินสามครั้งในหนึ่งวินาที เว้นแต่อยู่ต่ำกว่าเกณฑ์ที่ |
| 2.3.3 Animation from Interactions | AAA | การเคลื่อนไหวที่เกิดจากการโต้ตอบต้องปิดได้ เว้นแต่จำเป็น |
ระดับ AA ไม่ได้บังคับ 2.3.3 แต่การเคารพการ
คีย์บอร์ดและโฟกัส
เมนูที่มีแอนิเมชันต้องยังใช้งานด้วยคีย์บอร์ดได้: โฟกัสยังมองเห็นได้
ใช้ CSS ก่อน: view transitions และ scroll-driven animation
ตอนนี้เบราว์เซอร์จัดการเอฟเฟกต์ที่เคยต้องใช้ไลบรารี JavaScript ได้เอง ซึ่งเป็นหนึ่งในการเปลี่ยนแปลงเงียบ ๆ ใน อนาคตของ
การเปลี่ยนมุมมอง (view transitions)
ฟีเจอร์นี้ทำแอนิเมชันdocument.startViewTransition()) จะเริ่มการเปลี่ยน ส่วน@view-transition) บนทั้งสองหน้าจะเปิดใช้งาน เบราว์เซอร์ที่ไม่รองรับจะเปลี่ยนหน้าโดยไม่มีแอนิเมชัน ซึ่งเป็นทางสำรองที่
แอนิเมชันตามการเลื่อน
Scroll-driven animation ผูกความanimation-timeline ของ CSS แทนที่จะใช้ JavaScript
ตรวจ Baseline และวางแผนทางสำรอง
Baseline ซึ่งแสดงบน MDN และ web.dev บอกว่าฟีเจอร์ใช้งานได้ในเบราว์เซอร์หลักทั้งหมดหรือไม่: “newly available” เมื่อใช้ได้ในเวอร์ชันล่าสุดของทุกเบราว์เซอร์ และ “widely available” หลังจากนั้น 30 เดือน ณ เวลาที่เขียน (กันยายน 2026) MDN ระบุว่า view transitions ภายในหน้าเดียวเป็น Baseline newly available (ตั้งแต่ตุลาคม 2025) ขณะที่ view transitions ข้ามหน้า และ scroll-driven animation ยังรองรับได้จำกัด ตรวจก่อนจะพึ่งพามัน
ให้ถือทุกเอฟเฟกต์เป็นส่วนเสริม: ใส่ไว้หลังการตรวจฟีเจอร์ (เช่น @supports) และ query สำหรับลดการเคลื่อนไหว และตรวจให้แน่ใจว่าหน้าใช้งานได้ โดยไม่มีแอนิเมชันและไม่มี JavaScript
เช็กลิสต์ รีวิวการเคลื่อนไหว
ใช้กับงาน
ทำการเคลื่อนไหวบนเว็บไซต์ ให้ถูกต้อง
ถ้าคุณกำลังวางแผน