【发布时间】:2014-05-01 22:55:44
【问题描述】:
所以我试图通过这样做来为.load('content.html') 函数设置动画。
function loadContent(c) {
$('#main-container').stop().animate({
opacity: 0,
}, 300, function() {
$('#main-container').load('./content/' + c + '.html');
$(this).stop().animate({
opacity: 1,
}, 600);
});
}
这很简单,我想将不透明度设置为0,加载新内容并将不透明度设置回1。问题是在调用函数后立即加载内容,因此在'opacity 0' 发生之前内容会发生变化。我也试过这段代码
function loadContent(c) {
$('#main-container').stop().animate({
opacity: 0,
}, 300, function() {
setTimeout(function() {
$('#main-container').load('./content/' + c + '.html');
}, 600);
$(this).stop().animate({
opacity: 1,
}, 600);
});
}
但结果是一样的。有什么提示吗?
我认为这与.animation() 事件异步有关。
上面的两个代码和两个答案都可以正常工作我的代码(整体)中有错字,所以我在loadContent(c) 本身之前调用了.load() 函数,结果是内容立即加载,动画开始-> 内容加载第二次 -> 动画结束。
【问题讨论】:
-
试试
$(this).stop().delay(1500).animate({ ... -
试过了,我也试过把它放在
.load()之前也不起作用。
标签: javascript jquery html animation