สิ่งที่คุณต้องรู้เพื่อใช้งานแอนิเมชั่นใน CSS



บทความนี้จะให้ความรู้โดยละเอียดและครอบคลุมเกี่ยวกับวิธีการใช้งานแอนิเมชั่นใน CSS พร้อมตัวอย่าง

CSS เป็นหนึ่งในวิธีที่มีประสิทธิภาพที่สุดในการทำให้หน้าเว็บโต้ตอบได้ มันเปลี่ยนรูปลักษณ์และความรู้สึกพื้นฐานของเรา หน้าเว็บ. คุณสมบัติที่สำคัญและน่าตื่นเต้นอย่างหนึ่งที่ CSS นำเสนอคือช่วยให้เราแสดงภาพเคลื่อนไหวได้ ช่วยให้เราสามารถย้ายองค์ประกอบภายในหน้าของเรา มาเริ่ม Journey of Animations ใน CSS ตามลำดับต่อไปนี้:

ภาพเคลื่อนไหวใน CSS

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





  • คีย์เฟรม
  • ภาพเคลื่อนไหว
    ภาพเคลื่อนไหวใน CSS

ภาพเคลื่อนไหว CSS ได้รับการสนับสนุนในทุกเบราว์เซอร์ อย่างไรก็ตามเบราว์เซอร์รุ่นเก่าบางตัวเช่น Safari (ไม่เกินเวอร์ชัน 8.0) ต้องการคำนำหน้า (-webkit-) เพื่อตีความคุณสมบัติของภาพเคลื่อนไหว ตัวอย่างเช่น:

.anim {height: 200px width: 200px background: lightblue position: relative border-radius: 100% -webkit-animation-name: cssanim / * old browser * / -webkit-animation-duration: 5s / * old browser * / animation -name: cssanim animation-duration: 5s} / * old browser * / @ -webkit-keyframes cssanim {0% {left: 0px} 100% {left: 300px}} @keyframes cssanim {0% {left: 0px} 100 % {เหลือ: 300px}}

เราสามารถใช้ตัวอย่างหน้า html จากด้านบนและแทนที่โค้ด CSS ในแท็กสไตล์เพื่อลองดูตัวอย่างเพิ่มเติม



คีย์เฟรมใน CSS

นี่คือส่วนประกอบพื้นฐานของภาพเคลื่อนไหวใน CSS ใช้เพื่อกำหนดช่วงเวลาและรูปแบบเฉพาะของภาพเคลื่อนไหวบนหน้าเว็บของเรา กล่าวอีกนัยหนึ่งคือเมื่อเราระบุ @keyframes ภายใน CSS ของเรามันจะได้รับการควบคุมเพื่อปรับเปลี่ยนสถานะปัจจุบันเป็นสถานะใหม่หรือทำให้วัตถุเคลื่อนไหวในช่วงเวลาหนึ่ง

กองและกองใน java

@keyframes ต้องมีคุณสมบัติบางอย่างในการควบคุมภาพเคลื่อนไหวเช่นชื่อของภาพเคลื่อนไหวขั้นตอนและคุณสมบัติ



  • ชื่อ - ต้องมีชื่อสำหรับทุกภาพเคลื่อนไหวเพื่ออธิบายพฤติกรรมของมัน

  • ขั้นตอน - เวทีแสดงภาพเคลื่อนไหวที่เสร็จสมบูรณ์ สามารถแสดงด้วยคีย์เวิร์ด“ ถึง” และ“ จาก” หรือเป็นเปอร์เซ็นต์ในขณะที่ 0% แสดงสถานะเริ่มต้นและ 100% แสดงสถานะสิ้นสุดของแอนิเมชั่น ประโยชน์ของการใช้การแสดงเปอร์เซ็นต์คือเราสามารถกำหนดขั้นตอนกลางหลาย ๆ ขั้นระหว่างกันได้เช่นพฤติกรรมของแอนิเมชั่นที่ระยะ 50% หรือ 75% เป็นต้นควรเป็นอย่างไร

  • คุณสมบัติ - คุณสมบัติเหล่านี้ทำให้เราสามารถควบคุม @keyframes เพื่อจัดการกับมันในระหว่างการเคลื่อนไหว

.anim {height: 200px width: 200px background: lightblue position: relative border-radius: 100% animation-name: cssanim animation-duration: 5s} @keyframes cssanim {0% {transform: scale (0.5) opacity: 0} 50 % {transform: scale (1.5) opacity: 1} 100% {transform: scale (1)}}

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

  • เริ่มต้น: ตั้งค่าคุณสมบัตินี้เป็นค่าเริ่มต้น

  • สืบทอด: รับช่วงคุณสมบัตินี้จากองค์ประกอบหลัก

คุณสมบัติของภาพเคลื่อนไหว

  • ชื่อแอนิเมชั่น

ระบุชื่อของภาพเคลื่อนไหวซึ่งใช้ใน @keyframes เพื่อจัดการค่าที่เป็นไปได้คือ:

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

ไวยากรณ์:

ชื่อแอนิเมชั่น: ชื่อ | ไม่มี | เริ่มต้น | สืบทอด

.anim {height: 200px width: 200px background: lightblue position: relative border-radius: 100% animation-name: cssanim animation-duration: 5s} @keyframes cssanim {0% {left: 0px} 100% {left: 300px} }
  • ภาพเคลื่อนไหว - ระยะเวลา

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

ไวยากรณ์:

ระยะเวลาการเคลื่อนไหว: เวลา

.anim {height: 200px width: 200px background: blue position: relative border-radius: 100% animation-name: cssanim animation-duration: 4s} @keyframes cssanim {0% {transform: scale (0.4) opacity: 0} 50 % {transform: scale (1.4) opacity: 1} 100% {transform: scale (1)}}
  • ภาพเคลื่อนไหวล่าช้า

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

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

ไวยากรณ์:

ภาพเคลื่อนไหวล่าช้า: เวลา

.anim {height: 200px width: 200px background: lightblue position: relative border-radius: 100% animation-name: cssanim animation-duration: 4s animation-delay: 4s} @keyframes cssanim {0% {left: 0px} 100% {ซ้าย: 250px}}
  • แอนิเมชั่นซ้ำ - นับ

คุณสมบัตินี้ระบุจำนวนครั้งที่ควรเล่นลำดับภาพเคลื่อนไหว ค่าเริ่มต้นของคุณสมบัตินี้คือ 1ค่าที่เป็นไปได้คือ:

  • จำนวน - หมายถึงจำนวนการทำซ้ำ
  • ไม่มีที่สิ้นสุด - ระบุว่าภาพเคลื่อนไหวควรเล่นซ้ำตลอดไป

ไวยากรณ์:

แอนิเมชั่นซ้ำ - นับ: จำนวน | ไม่มีที่สิ้นสุด

อะไรที่เปลี่ยนแปลงไม่ได้และไม่เปลี่ยนรูป
.anim {height: 200px width: 200px background: lightblue position: relative border-radius: 100% animation-name: cssanim animation-duration: 2s animation-iteration-count: 4} @keyframes cssanim {0% {left: 0px} 100% {เหลือ: 100px}}
  • ทิศทางการเคลื่อนไหว

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

  • ปกติ - นี่เป็นลักษณะการทำงานเริ่มต้นและภาพเคลื่อนไหวจะเล่นไปข้างหน้า หลังจากแต่ละรอบภาพเคลื่อนไหวจะเข้าสู่สถานะเริ่มต้นและเล่นไปข้างหน้าอีกครั้ง

  • ย้อนกลับ - ภาพเคลื่อนไหวจะเล่นในทิศทางย้อนกลับ หลังจากแต่ละรอบภาพเคลื่อนไหวจะเข้าสู่สถานะสิ้นสุดและเล่นย้อนกลับ

  • สำรอง - ทิศทางของภาพเคลื่อนไหวจะกลับด้านเช่นเล่นไปข้างหน้าก่อนแล้วย้อนกลับในทุกรอบ ทุกรอบคี่จะแสดงภาพเคลื่อนไหวไปข้างหน้าและทุกๆรอบจะแสดงการเคลื่อนที่ย้อนกลับ

  • ทางเลือก - ย้อนกลับ - ทิศทางของภาพเคลื่อนไหวจะกลับด้านสลับกัน ที่นี่ภาพเคลื่อนไหวจะเล่นย้อนกลับก่อนแล้วจึงเดินหน้าต่อทุกรอบ ทุกรอบคี่จะเคลื่อนที่ย้อนกลับหรือย้อนกลับและทุก ๆ รอบจะแสดงภาพเคลื่อนไหวไปข้างหน้า

ไวยากรณ์:

ทิศทางการเคลื่อนไหว: ปกติ | ย้อนกลับ |ทางเลือก | ทางเลือก - ย้อนกลับ

.anim {height: 200px width: 200px background: lightblue position: relative border-radius: 100% animation-name: cssanim animation-duration: 2s animation-iteration-count: infinite} @keyframes cssanim {0% {left: 0px} 100% {เหลือ: 100px}}
  • แอนิเมชั่นจับเวลาฟังก์ชั่น

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

  • ความสะดวก - นี่คือค่าเริ่มต้นของคุณสมบัติ ที่นี่แอนิเมชั่นเริ่มช้าค่อยๆกลายเป็นเร็วตรงกลางแล้วจบลงอย่างช้าๆอีกครั้ง

  • เชิงเส้น - ภาพเคลื่อนไหวจะรักษาความเร็วเท่ากันตลอดทั้งรอบเช่นตั้งแต่ต้นจนจบ

  • สะดวกใน - ภาพเคลื่อนไหวเริ่มอย่างช้าๆ

  • ง่ายออก - ภาพเคลื่อนไหวจบลงอย่างช้าๆ

  • สะดวกในการเข้า - ออก - ภาพเคลื่อนไหวจะเคลื่อนไหวช้าๆทั้งในช่วงเริ่มต้นและสิ้นสุด

  • ลูกบาศก์เบเซียร์ (n, n, n, n) - คุณสมบัติขั้นสูงนี้ช่วยให้เราสร้างฟังก์ชันจับเวลาที่กำหนดเองโดยกำหนดค่าของเราเอง ค่าที่เป็นไปได้มีตั้งแต่ 0 ถึง 1

ไวยากรณ์:

แอนิเมชั่นไทม์มิ่งฟังก์ชัน: เชิงเส้น | ความสะดวก ง่ายออก | ง่ายใน | เข้า - ออกง่ายลูกบาศก์เบเซียร์ (n, n, n, n)

.anim {height: 200px width: 200px background: lightblue position: relative border-radius: 100% animation-name: cssanim animation-duration: 2s animation-direction: reverse} @keyframes cssanim {0% {background: orange left: 0px } 50% {background: yellow left: 200px top: 200px} 100% {background: blue left: 100px}}
  • โหมดเติมภาพเคลื่อนไหว

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

  • ไม่มี - นี่คือค่าเริ่มต้นของคุณสมบัตินั่นคือรูปแบบการเคลื่อนไหวจะไม่ถูกนำไปใช้กับองค์ประกอบก่อนหรือหลังภาพเคลื่อนไหว

  • ส่งต่อ - สไตล์จะถูกคงไว้โดยองค์ประกอบในลำดับภาพเคลื่อนไหวสุดท้ายเช่นหลังจากภาพเคลื่อนไหวเสร็จสิ้น

  • ถอยหลัง - สไตล์จะถูกคงไว้โดยองค์ประกอบในลำดับภาพเคลื่อนไหวเริ่มต้นนั่นคือก่อนที่ภาพเคลื่อนไหวจะถูกจ้องโดยเฉพาะในช่วงหน่วงเวลาของภาพเคลื่อนไหว

  • ทั้งสองอย่าง - นี่หมายความว่าภาพเคลื่อนไหวจะเป็นไปตามทั้งทิศทางเช่นไปข้างหน้าและข้างหลัง

ไวยากรณ์:

คลาส python และตัวอย่างวัตถุ

โหมดเติมภาพเคลื่อนไหว: ไม่มี | ส่งต่อ | ถอยหลัง | ทั้งสองอย่าง

.anim {width: 50px height: 50px background: lightblue color: white font-weight: bold position: relative animation-name: cssanim animation-duration: 5s animation-iteration-count: infinite border-radius: 100%} # anim1 { แอนิเมชั่นไทม์มิ่งฟังก์ชัน: ความสะดวก} # anim2 {แอนิเมชั่นไทม์มิ่งฟังก์ชัน: เชิงเส้น} # anim3 {แอนิเมชั่นไทม์มิ่งฟังก์ชั่น: ความง่ายใน} # anim4 {แอนิเมชั่นไทม์มิ่ง: ความง่ายออก} # anim5 {แอนิเมชั่น - ฟังก์ชันจับเวลา: ความสะดวกในการออก} @keyframes cssanim {from {left: 0px} ถึง {left: 400px}}
  • ภาพเคลื่อนไหวเล่นสถานะ

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

  • กำลังเล่น - เพื่อแสดงภาพเคลื่อนไหวในการทำงาน
  • หยุดชั่วคราว - เพื่อแสดงภาพเคลื่อนไหวในสถานะหยุดชั่วคราว

ไวยากรณ์:

animation-play-state: หยุดชั่วคราว | กำลังเล่น

.anim {width: 100px height: 100px background: lightblue position: relative animation-name: cssanim animation-duration: 3s animation-delay: 2s animation-fill-mode: backwards border-radius: 100%} @keyframes cssanim {0% {top: 0px background-color: orange} 50% {top: 0px background-color: green} 100% {top: 100pxbackground-color: blue}}
  • ภาพเคลื่อนไหว

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

ไวยากรณ์:

ภาพเคลื่อนไหว: [ชื่อภาพเคลื่อนไหว] | [ภาพเคลื่อนไหว - ระยะเวลา] | [แอนิเมชั่น - ไทม์มิ่ง - ฟังก์ชัน] |[ภาพเคลื่อนไหวล่าช้า] | [แอนิเมชัน - การวนซ้ำ - นับ] | [ทิศทางการเคลื่อนไหว] |[โหมดเติมภาพเคลื่อนไหว] | [สถานะการเล่นภาพเคลื่อนไหว]

เอฟเฟกต์ภาพเคลื่อนไหวทั้งหมดที่เราแสดงข้างต้นโดยใช้คุณสมบัติการเคลื่อนไหวที่แตกต่างกันสามารถทำได้โดยใช้ชวเลขภาพเคลื่อนไหว ทรัพย์สิน.

.anim {height: 200px width: 200px background: lightblue position: relative border-radius: 100% animation-name: cssanim animation-duration: 2s animation-direction: normal animation-play-state: paused} @keyframes cssanim {0% {background: orange top: 0px} 50% {background: yellow left: 200px top: 200px} 100% {background: blue left: 100px}}

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

ตรวจสอบ ซึ่งมาพร้อมกับการฝึกอบรมสดที่นำโดยผู้สอนและประสบการณ์โครงการในชีวิตจริง การฝึกอบรมนี้ทำให้คุณมีความเชี่ยวชาญในทักษะในการทำงานกับเทคโนโลยีเว็บส่วนหลังและส่วนหน้า รวมถึงการฝึกอบรมเกี่ยวกับ Web Development, jQuery, Angular, NodeJS, ExpressJS และ MongoDB

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อก 'Animations in CSS' แล้วเราจะติดต่อกลับไป