0Pricing
CSS Academy · บทเรียน

ประสิทธิภาพ: คุณสมบัติที่แปลงได้เทียบกับคุณสมบัติที่ต้องวาดใหม่

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

ประสิทธิภาพ: คุณสมบัติที่แปลงได้เทียบกับคุณสมบัติที่ต้องวาดใหม่ เป็นบทเรียน CSS Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CSS Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CSS Academy มีบทเรียนทั้งหมด 4 บทเรียน

กระบวนการแสดงผล

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

คุณสมบัติที่ทำให้เกิดการจัดวาง

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

  • width, height
  • margin, padding
  • top, left
  • font-size
  • display

คุณสมบัติที่ทำให้เกิดการวาด

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

  • background-color
  • color
  • box-shadow
  • border

คุณสมบัติที่มีเฉพาะการประกอบ

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

  • transform
  • opacity

กฎทองของแอนิเมชัน CSS

สำหรับแอนิเมชัน 60 เฟรมต่อวินาทีที่ลื่นไหล ให้ทำแอนิเมชันเฉพาะ transform และ opacity เท่านั้น ใช้ transform: translate() แทน top/left และใช้ opacity แทนการค่อย ๆ ปรากฏหรือหายไปด้วย display

  <div class="box demo-active">Box</div>

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

will-change บอกให้เบราว์เซอร์เลื่อนองค์ประกอบขึ้นไปอยู่บนชั้น GPU ของตนเอง ก่อน ที่แอนิเมชันจะเริ่ม เพื่อป้องกัน "การกะพริบจากการเลื่อนชั้น" ระหว่างแอนิเมชัน

  <div class="animated">Animated</div>

การตั้งค่าการเปลี่ยนแปลงล่วงหน้าเป็นอัตโนมัติ

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

การวัดด้วย DevTools

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

ใช้การแปลงแทนด้านบนและซ้าย

การปรับปรุงที่ส่งผลมากที่สุดคือแทนที่แอนิเมชันตำแหน่งด้วยการแปลง:

  <div class="fly demo-active">Fly</div>

ต้นทุนของการเปลี่ยนสี

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

  <button class="btn demo-active">Hover me</button>

คุณสมบัติการจำกัดขอบเขต

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

  <div class="widget">Widget</div>

ตรวจสอบอย่างรวดเร็ว

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

ทบทวน

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

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

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

ใช่ — ข้อความเต็มของ “ประสิทธิภาพ: คุณสมบัติที่แปลงได้เทียบกับคุณสมบัติที่ต้องวาดใหม่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CSS Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CSS Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ประสิทธิภาพ: คุณสมบัติที่แปลงได้เทียบกับคุณสมบัติที่ต้องวาดใหม่”

เรียนรู้ว่าคุณสมบัติใดเร่งด้วย GPU และคุณสมบัติใดกระตุ้นการจัดวางและการวาดใหม่ที่ใช้ทรัพยากรสูง คุณปฏิบัติ CSS Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CSS Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน CSS Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “ประสิทธิภาพ: คุณสมบัติที่แปลงได้เทียบกับคุณสมบัติที่ต้องวาดใหม่” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน CSS Academy นี้ได้ไหม

ได้ บทเรียน CSS Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ระยะเวลาและจังหวะของคุณสมบัติการเปลี่ยนผ่าน
  2. ฟังก์ชันผ่อนความเร็ว: ease linear cubic-bezier
  3. การเปลี่ยนผ่านคุณสมบัติหลายรายการ
  4. ประสิทธิภาพ: คุณสมบัติที่แปลงได้เทียบกับคุณสมบัติที่ต้องวาดใหม่
← กลับไปที่ CSS Academy