Bu yüzden, hem CSS3 geçişlerini hem de animasyonları nasıl yapacağımı anlıyorum. Açık olmayan ve googled olan, ne zaman kullanılacağıdır.
Örneğin, bir top zıplatma yapmak istersem, animasyonun gitmenin yolu olduğu açıktır. Anahtar kareleri sağlayabilirim ve tarayıcı ara kareleri yapabilirdi ve güzel bir animasyon olacak.
Bununla birlikte, bahsedilen etkinin her iki şekilde de elde edilebileceği durumlar vardır. Basit ve yaygın bir örnek facebook tarzı kayar çekmece menüsünü uygulamak olacaktır:
Bu etki aşağıdaki gibi geçişlerle elde edilebilir:
.sf-page {
-webkit-transition: -webkit-transform .2s ease-out;
}
.sf-page.out {
-webkit-transform: translateX(240px);
}
Veya bunun gibi animasyonlar aracılığıyla:
.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); }
}
Şöyle görünen HTML ile:
<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>
Ve bu eşlik eden jQuery betiği:
$("#content-container").click(function(){
$("#content-container").toggleClass("out");
// below is only required for css animation route
$("#content-container").toggleClass("in");
});
Anlamak istediğim, bu yaklaşımların artıları ve eksileri.
- Bariz olan bir fark, canlandırmanın çok daha fazla kod almasıdır.
- Animasyon daha iyi esneklik sağlar. İçeri ve dışarı kaydırmak için farklı animasyonlar olabilir
- Performans hakkında söylenebilecek bir şey var mı? Her ikisi de s / b ivmelenmesinden yararlanıyor mu?
- Hangisi daha modern ve ileriye giden yol
- Ekleyebileceğiniz başka bir şey var mı?