因此,我了解如何执行 CSS3过渡期和 动画。什么是不清楚的,我已经谷歌,是什么时候使用哪一个。
例如,如果我想做一个球弹跳,很明显,动画是去的方式。我可以提供关键帧和浏览器将做中间帧,我将有一个很好的动画去。
然而,在某些情况下,上述效果可以以任何一种方式实现。一个简单而常见的例子是实现 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");
});
我想了解的是这些方法的优点和缺点。