【发布时间】:2011-09-17 11:57:20
【问题描述】:
我目前正在淡出一个div的内容,用新的内容替换它,然后再次淡入如下:
area.fadeOut('400').load("file.php",
function(){
$(this).fadeIn('400');
}
);
首先,这个链接是否正确?
其次,如果可能的话,我想通过从右侧滑入来替换淡入(是否需要将旧内容滑到左侧)?怎么可能实现?
【问题讨论】:
我目前正在淡出一个div的内容,用新的内容替换它,然后再次淡入如下:
area.fadeOut('400').load("file.php",
function(){
$(this).fadeIn('400');
}
);
首先,这个链接是否正确?
其次,如果可能的话,我想通过从右侧滑入来替换淡入(是否需要将旧内容滑到左侧)?怎么可能实现?
【问题讨论】:
我想指出 fadeIn 和 fadeOut 是 jQuery Core 的一部分。你有 jQuery UI 加载吗?如果没有,您将需要它用于其他答案中使用的 show 版本。
此外,您已经有了 area 变量,因此无需使用 S(this) 重新实例化。你做的越多,体验就越慢。
试试这个:
var newArea = area.clone().css("display", "none").insertAfter(area);
newArea.load("file.php", function() {
area.hide("slide", {direction:"left"}, 400, function() {
area.remove();
area = newArea;
});
newArea.show("slide", {direction:"left"}, 400);
});
它应该加载到一个隐藏元素中,然后随着原始元素向左滑动而从右侧滑入。
编辑:由于您似乎正在寻找一些不同的东西,我正在更新代码。
【讨论】:
对我来说看起来不错,只需将对 fadeIn() 的调用替换为 $(this).show("slide", { direction: "left" }, 400);
【讨论】:
jquery slide 获取 api
area.fadeOut('400', function() {
$(this).load("file.php", function() {
$(this).show("slide", {direction:"left"}, 400);
});
});
我认为您需要像这样调用load,因为它可能不会等待fadeOut 完成。
【讨论】:
$('#area') 之类的东西。如果这不是问题,只需$(this).show(); 看看其余参数是否有问题。