我正在尝试为页面上的某些元素设置动画。我需要动画的属性之一是bottom
,但是,我还需要能够在不动画的情况下重新定位元素,这就是为什么我向它添加了一个单独的类:.anim
.slideshow_footer {
position: absolute;
bottom: 0;
left: 0;
right: 0;
color: #fff
}
.slideshow_footer.anim {
-webkit-transition:bottom 0.3s ease-out;
-moz-transition:bottom 0.3s ease-out;
-o-transition:bottom 0.3s ease-out;
-ms-transition:bottom 0.3s ease-out;
transition:bottom 0.3s ease-out;
}
在我的 Javascript 中,我执行以下操作:
var footer = $('#footer');
// do some magic with the footer
// ...
// ...
setCss(footer, 'bottom', -100); // position it so it's hidden, this should be immediate
addClass(footer, 'anim'); // add the animation class
setCss(footer, 'bottom', ); // animate the footer sliding in
请注意,我没有使用 jQuery 或任何东西,它是一个内部 javascript 框架。
我找到了解决问题的解决方法,但它非常难看:
var footer = $('#footer');
// do some magic with the footer
// ...
// ...
setCss(footer, 'bottom', -100); // position it so it's hidden, this should be immediate
addClass(footer, 'anim'); // add the animation class
setTimeout(function() {
setCss(footer, 'bottom', ); // animate the footer sliding in
}, 0); // even no timeout works...
谁能向我解释发生了什么以及如何最好地解决这个问题?可能更改 addClass 和 setCss 函数?