我有一组包含动画的DIV,这些DIV在页面加载时被隐藏。这些动画中的每一个都在计时器上运行,但它们在隐藏DIV时运行。
这些DIV设置为在页面滚动时显示,但此时动画已完成!有没有办法在动画出现后加载它?
继承我的小提琴:http://jsfiddle.net/fatfrank44/wRfu5/
CSS
#content-wrapper {
height: 500px;
float: left;
visibility: visible;
}
#container, #container2 {
width: 331px;
height: 105px;
margin: 15px;
background-color: #666;
}
.numbers {
width: 36px;
height: 50px;
background-color: #dc000f;
float: left;
}
HTML:
<div id="content-wrapper">
<div id="container">
<div class="numbers"></div>
</div>
<div id="container2">
<div class="numbers"></div>
</div>
</div>
JS:
<script>
$(document).ready(function() {
var controller = $.superscrollorama();
// individual element tween examples
controller.addTween('#container', TweenMax.fromTo( $('#container'), .25, {css:{opacity:0, scale:0, }, immediateRender:true, ease:Quad.easeInOut}, {css:{opacity:1, scale:1}, ease:Quad.easeInOut}));
controller.addTween('#container2', TweenMax.fromTo( $('#container2'), .25, {css:{opacity:0, scale:0, }, immediateRender:true, ease:Quad.easeInOut}, {css:{opacity:1, scale:1}, ease:Quad.easeInOut}));
});
</script>
<script>
$(document).ready(function () {
$('.numbers').delay(1).animate({
'margin-left': '100px'
}, {
duration: 1000,
queue: true
});
});
</script>
答案 0 :(得分:0)
如果我明白你要做什么......
由于$(document).ready
,您的动画将在页面加载后立即播放。
您应该将动画代码放在addTween方法中,以便在将元素添加到页面/使它们可见后立即开始动画。
答案 1 :(得分:0)
我设法使用以下代码。当你向下滚动页面时,它会对DIV进行填充:
<script type="text/javascript">
$(window).scroll( function() {
if ( $(window).scrollTop() > 100 ) {
loadDiv();
}
});
function loadDiv() {
$('#container-holder').fadeIn('slow', function() {
$(this).fadeTo("slow", 1);
$('#container').fadeTo("fast", 1);
$('.numbers').delay(500).fadeIn({duration:1000, queue:false}).animate({'margin-left': '100px'}, {duration:1500, queue:false});
});
}
</script>