ดังนั้นฉันเข้าใจวิธีการเปลี่ยนทั้ง CSS3 และภาพเคลื่อนไหว สิ่งที่ไม่ชัดเจนและฉัน googled คือเมื่อใดที่จะใช้
ตัวอย่างเช่นถ้าฉันต้องการตีกลับเป็นที่ชัดเจนว่าภาพเคลื่อนไหวเป็นวิธีที่จะไป ฉันสามารถให้คีย์เฟรมและเบราว์เซอร์จะทำเฟรมตัวกลางและฉันจะมีภาพเคลื่อนไหวที่ดี
อย่างไรก็ตามมีบางกรณีที่สามารถใช้เอฟเฟกต์ดังกล่าวได้ทั้งสองวิธี ตัวอย่างที่ง่ายและทั่วไปจะใช้เมนูเลื่อนลิ้นชักสไตล์ Facebook:
เอฟเฟกต์นี้สามารถทำได้โดยการเปลี่ยนผ่านดังนี้:
.sf-page {
-webkit-transition: -webkit-transform .2s ease-out;
}
.sf-page.out {
-webkit-transform: translateX(240px);
}
หรือผ่านภาพเคลื่อนไหวเช่นนั้น:
.sf-page {
-webkit-animation-duration: .4s;
-webkit-transition-timing-function: ease-out;
}
.sf-page.in {
-webkit-animation-name: sf-slidein;
-webkit-transform: translate3d(0, 0, 0);
}
.sf-page.out {
-webkit-animation-name: sf-slideout;
-webkit-transform: translateX(240px);
}
@-webkit-keyframes sf-slideout {
from { -webkit-transform: translate3d(0, 0, 0); }
to { -webkit-transform: translate3d(240px, 0, 0); }
}
@-webkit-keyframes sf-slidein {
from { -webkit-transform: translate3d(240px, 0, 0); }
to { -webkit-transform: translate3d(0, 0, 0); }
}
ด้วย HTML ที่มีลักษณะดังนี้:
<div class="sf-container">
<div class="sf-page in" id="content-container">
<button type="button">Click Me</button>
</div>
<div class="sf-drawer">
</div>
</div>
และสคริปต์ jQuery นี้ประกอบขึ้นด้วย:
$("#content-container").click(function(){
$("#content-container").toggleClass("out");
// below is only required for css animation route
$("#content-container").toggleClass("in");
});
สิ่งที่ฉันต้องการทำความเข้าใจคือข้อดีและข้อเสียของวิธีการเหล่านี้คืออะไร
- ข้อแตกต่างที่ชัดเจนประการหนึ่งคือการสร้างภาพเคลื่อนไหวทำให้มีโค้ดมากขึ้น
- แอนิเมชันให้ความยืดหยุ่นที่ดีขึ้น ฉันสามารถมีภาพเคลื่อนไหวที่แตกต่างกันสำหรับการเลื่อนออกและเข้า
- มีบางสิ่งที่สามารถพูดได้เกี่ยวกับประสิทธิภาพ ทั้งคู่ใช้ประโยชน์จากการเร่งความเร็ว h / w หรือไม่?
- ซึ่งมีความทันสมัยมากขึ้นและเป็นทางเดินหน้าต่อไป
- มีอะไรอีกบ้างที่คุณสามารถเพิ่มได้