วิธีใช้การเปลี่ยน CSS: ภาพเคลื่อนไหวทำได้ถูกต้อง



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

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

ทำไมต้องเปลี่ยน CSS

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





การเปลี่ยน CSS ช่วยให้คุณกำหนดการเปลี่ยนแปลงสำหรับ องค์ประกอบช่วงเวลาที่เฉพาะเจาะจงความเร็วของเส้นโค้งการเร่งความเร็วและอื่น ๆ อีกมากมาย คุณสามารถทำทั้งหมดนี้ได้โดยไม่ต้องใช้ Flash หรือ JavaScript .

เพื่อความเข้าใจที่ดีขึ้นคุณสามารถดูภาพด้านล่าง:



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

คุณสมบัติการเปลี่ยนแปลง

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

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



ไวยากรณ์:

การเปลี่ยนแปลง:

ในฐานะผู้เริ่มต้นคุณอาจประสบปัญหาในการใช้ชวเลข หากคุณคิดว่าการใช้ชวเลขนั้นซับซ้อนสำหรับคุณในตอนนี้คุณสามารถระบุคุณสมบัติการเปลี่ยนแยกกันได้ สำหรับองค์ประกอบ HTML คุณสามารถระบุคุณสมบัติการเปลี่ยนแปลงทีละรายการดังที่แสดงในตัวอย่างด้านล่าง:

ความแตกต่างระหว่าง java และ c ++ คืออะไร
div {width: 100px height: 100px background: lightblue transition-property: width transition-duration: 2s transition-timing-function: linear transition-delay: 1s} div: hover {width: 300px}

วางเมาส์เหนือกล่อง

ในตัวอย่างข้างต้นเราได้ระบุคุณสมบัติ (คุณสมบัติการเปลี่ยนแปลง, ระยะเวลาการเปลี่ยนแปลง, การเปลี่ยนเวลา - ฟังก์ชันและการหน่วงเวลาการเปลี่ยนแปลง) และค่าของคุณสมบัติเหล่านั้นแยกกัน เราจะเรียนรู้เกี่ยวกับคุณสมบัติการเปลี่ยนแปลงเหล่านี้ในไม่ช้า

คุณต้องระบุอะไร?

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

ลองพิจารณาตัวอย่าง:

โค้ดด้านล่างกำหนดเอฟเฟกต์การเปลี่ยนแปลงของคุณสมบัติความกว้างเป็นระยะเวลาห้าวินาที

div {width: 100px height: 100px background: blue transition: width 5s} div: hover {width: 600px}

เลื่อนเคอร์เซอร์ไปที่องค์ประกอบ div ด้านบนเพื่อดูผลการเปลี่ยนแปลง

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

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

ในโค้ดด้านล่างคุณสมบัติการเปลี่ยนถูกระบุสำหรับความกว้างความสูงและการแปลง

div {padding: 15px width: 150px height: 100px background: green transition: width 2s, height 2s, transform 2s} div: hover {width: 300px height: 200px transform: rotation (360deg)} สวัสดีชาวโลก 

(วางเมาส์เหนือฉัน)

จากตัวอย่างด้านบนคุณจะเห็นว่ากล่องสีเขียวเคลื่อนไหวอย่างไรเมื่อคุณวางเมาส์เหนือกล่อง

เพิ่มพลังให้กับ java

เราได้ระบุคุณสมบัติและระยะเวลาไว้เท่านั้น มาดูพารามิเตอร์อื่น ๆ พร้อมตัวอย่างต่างๆ

คุณสมบัติฟังก์ชันฟังก์ชันการเปลี่ยนเวลา

คุณสมบัตินี้กำหนดเส้นโค้งความเร็วสำหรับผลการเปลี่ยนแปลง สามารถรับค่าต่อไปนี้:

  • ค่าความง่าย: นี่คือค่าเริ่มต้นที่เอฟเฟกต์ช้าในช่วงเริ่มต้นจากนั้นเร็วขึ้นและจบลงอย่างช้าๆ
  • ค่าเชิงเส้น: เอฟเฟกต์นี้ไม่ได้เปลี่ยนแปลงความเร็วของการเปลี่ยน แต่จะรักษาความเร็วให้คงที่ตั้งแต่ต้นจนจบ
  • ค่าความง่าย: เอฟเฟกต์นี้เริ่มต้นอย่างช้าๆ
  • ค่าความง่าย: ผลกระทบนี้มีจุดจบที่ช้า
  • ค่าเข้า - ออกง่าย: ผลกระทบนี้มีการเริ่มต้นช้าและสิ้นสุดช้า
  • Cubic-bezier ค่า (n, n, n, n): คุณสามารถระบุชุดค่าของคุณเองในฟังก์ชันคิวบิกเบซิเอร์

โค้ดด้านล่างนี้แสดงเอฟเฟกต์การเปลี่ยนสำหรับค่าเชิงเส้นความง่ายความสะดวกในการคลายออกและความง่ายในการเข้าออก

div {width: 100px height: 100px background: pink transition: width 2s} # div1 {transition-timing-function: linear} # div2 {transition-timing-function: ease} # div3 { } # div4 {ทรานซิชั่นไทม์มิ่งฟังก์ชัน: ความง่าย - ออก} # div5 {ทรานซิชั่นไทม์มิ่งฟังก์ชัน: ความสะดวกในการออก} div: โฮเวอร์ {width: 300px}

วางเมาส์เหนือองค์ประกอบ div ด้านล่าง

เชิงเส้น
ความสะดวก
สะดวกใน
ง่ายออก
สะดวกในการเข้า - ออก

ทรัพย์สินที่ล่าช้าในการเปลี่ยนแปลง

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

ตัวอย่างเนมสเปซ c ++

เรามาดูตัวอย่างเพื่อดูความล่าช้าในผลการเปลี่ยนแปลง:

div {width: 100px height: 100px background: yellow transition: width 3s transition-delay: 1s} div: hover {width: 300px}

วางเมาส์เหนือองค์ประกอบ div ด้านล่าง

บันทึก: คุณสามารถสังเกตได้ว่าหน่วงเวลา 1 วินาทีก่อนที่เอฟเฟกต์จะเริ่ม

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

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

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

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