【发布时间】:2014-09-19 21:42:36
【问题描述】:
我正在尝试使用 jQuery 在我的 UI 上制作一些漂亮的动画,而这些动画又是使用 Bootstrap 构建的。我的 HTML 中有两个 <DIV>s:id="fadein"(其中有 style="display:none")和 id="slidedown"。这是我的脚本:
<script language="javascript">
function doAnimations() {
var height = $('#fadein').height();
$('#slidedown').animate({top: height + "px"}, {duration: 1000});
$('#fadein').delay(1000).fadeIn({duration: 1000});
};
function init() {
setTimeout(doAnimations(), 500);
};
window.onload = init;
</script>
我想要发生的是,当页面加载时,500 毫秒后 <DIV> #slidedown 向下滑动 <DIV> #fadein 将占用的空间量;然后,当它被移动时(通过使用delay(1000),淡入<DIV> #fadein。发生的情况是<DIV> #slidedown 确实很好地向下移动,但立即#fadein开始出现它跳下页面。我怀疑这是因为#slidedown 的位置是position: relative 到它的父对象,并且当#fadein <DIV> 开始出现那个 成为它的新父母。
我的想法是在调用函数时捕获 #slidedown 的 .offset() 和在 fadeIn() 方法之前将 top 的 .css 值重置为该值以将其固定到位 - 但是好像没什么区别。
在.animate 完成后,是否有人对如何最好地阻止#slidedown 进一步移动有任何建议?谢谢!
【问题讨论】:
标签: jquery css twitter-bootstrap jquery-animate