เครื่องมือสร้าง Keyframes CSS

ผลลัพธ์

กฎ @keyframes กำหนดจุดสำคัญของแอนิเมชัน: องค์ประกอบมีลักษณะอย่างไรตอนเริ่ม กลาง และจบ เครื่องมือนี้เขียนกฎให้การเคลื่อนไหวทั่วไปสี่แบบ: เฟดสไลด์ พัลส์ หมุน และเด้ง ตั้งชื่อแอนิเมชัน กำหนดระยะเวลา และสำหรับแบบสไลด์กับเด้ง กำหนดระยะทางการเคลื่อนที่ในหน่วยพิกเซล ผลลัพธ์คือรูปแบบย่อ animation กับบล็อก @keyframes พร้อมวางลงสไตล์ชีต

วิธีสร้าง keyframes

  1. 1

    เลือกประเภทแอนิเมชัน

    เฟดสไลด์ พัลส์ หมุน หรือเด้ง แต่ละพรีเซ็ตมาพร้อมเฟรมที่เตรียมไว้

  2. 2

    ตั้งชื่อแอนิเมชัน

    ชื่อแบบ kebab-case เช่น `fade-slide` นำไปใช้ในรูปแบบย่อ `animation` ภายหลัง

  3. 3

    กำหนดระยะเวลา

    หน่วยวินาที เช่น 0.6 สำหรับการเปลี่ยนที่เร็ว

  4. 4

    กำหนดระยะทาง (สไลด์และเด้ง)

    ระยะทางการเคลื่อนที่ในหน่วยพิกเซล ใช้สำหรับการเคลื่อนที่ในแนวตั้ง

  5. 5

    คัดลอก CSS

    รูปแบบย่อกับบล็อก `@keyframes` พร้อมใช้ในสไตล์ชีตของคุณ

สี่พรีเซ็ต

เฟดสไลด์

.animated {
  animation: fade-slide 0.6s ease both;
}

@keyframes fade-slide {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

องค์ประกอบค่อยๆ ปรากฏพร้อมเลื่อนขึ้นจากด้านล่าง

พัลส์

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.05); opacity: .8; }
}

เอฟเฟกต์หายใจเบาๆ เหมาะกับจุดแจ้งเตือนและป้ายสัญลักษณ์

หมุน

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

หมุนครบรอบ เหมาะกับตัวโหลดและไอคอน

เด้ง

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-24px); }
}

องค์ประกอบเด้งขึ้นแล้วกลับลงมา

ทำไมต้อง transform และ opacity?

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

รูปแบบย่อ animation

animation: fade-slide 0.6s ease both; อ่านว่า: แอนิเมชันชื่อ fade-slide ยาว 0.6 วินาที ใช้ easing ease ตามค่าเริ่มต้น โหมดเติมเต็ม both ใช้สถานะเริ่มต้นก่อนแอนิเมชันเริ่ม และคงสถานะสุดท้ายหลังจบ เพื่อไม่ให้องค์ประกอบกะพริบก่อนหรือดีดกลับอย่างกระตุกหลังเคลื่อนที่

หลักการตั้งชื่อ

  • ใช้ kebab-case ตามหลักการของ CSS
  • อธิบายการเคลื่อนไหว ไม่ใช่ตัวองค์ประกอบ: fade-in-up ดีกว่า alert-appear
  • หลีกเลี่ยงชื่อที่อาจชนกับไลบรารีของบุคคลที่สาม

การรองรับเบราว์เซอร์

@keyframes เป็นฟีเจอร์สากล รองรับทุกเบราว์เซอร์ตั้งแต่ IE 10

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

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

ระยะทางคือการเคลื่อนที่แนวตั้งในหน่วยพิกเซลสำหรับพรีเซ็ตสไลด์และเด้ง: แอนิเมชันเฟดสไลด์เริ่มต่ำกว่า 24px แล้วเลื่อนขึ้น ส่วนเด้งเด้งขึ้น 24px แล้วกลับมา พรีเซ็ตหมุนไม่ใช้ระยะทาง

ได้ ผลลัพธ์เป็น CSS ล้วนๆ เปลี่ยน ease เป็นคำสำคัญ easing อื่นหรือค่า cubic-bezier(...) แล้วเพิ่มเปอร์เซ็นต์กลางเช่น 25% หรือ 75% ในบล็อก @keyframes เพื่อปรับการเคลื่อนไหวให้ละเอียดขึ้น

เพราะการเรนเดอร์ซ้ำของเฟรมเวิร์กอาจนำคลาสกลับมาใช้และเริ่มแอนิเมชันใหม่ ใช้ animation-fill-mode: both (มีอยู่ในผลลัพธ์แล้ว) เพื่อคงสถานะสุดท้าย หรือแยกตัวกระตุ้นแอนิเมชันออกจากองค์ประกอบที่ถูกเรนเดอร์ซ้ำ

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

ตัวลดรูปพีชคณิตบูลีน

ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^

เครื่องมือตรวจสอบหมายเลขโทรศัพท์

ตรวจสอบโครงสร้างหมายเลขตามประเทศ พร้อมดูภูมิภาค ประเภท และรูปแบบ E.164 ระหว่างประเทศ ในประเทศ และ RFC 3966

เครื่องมือนี้มีให้บริการในภาษาอื่น