jquery fadein同时出现

时间:2011-12-24 09:35:09

标签: javascript jquery fadein fadeout

我试图淡出对话框的现有文本,然后同时淡入错误图像。

我怎么能这样做?现在我(有点)工作但有些事情错了。

  1. 它立即淡出
  2. 它不是同时发生的(我希望1在淡出其他淡出时淡入)。
  3. 注意:我不能淡入div,因为在整个程序中都会写入#dialog,所以如果我将div.error存储在那里它只会​​被覆盖,所以我需要这样做。< / p>

    到目前为止我有什么

    $.ajax({
                type: "POST",
                url:  "/checkstatus/" + id,
                dataType: "html",
                error: function(data){
                    $("#dialog").fadeOut();
                    $("#dialog").hide().html("<img src='/img/deleted.jpg' alt='deleted'>")
                    $("#dialog").fadeIn();
                }
            });
    

2 个答案:

答案 0 :(得分:3)

$.ajax({
    type: "POST",
    url:  "/checkstatus/" + id,
    dataType: "html",
    error: function(data){
        $("#dialog").fadeOut(function(){
             $("#dialog")
                .html("<img src='/img/deleted.jpg' alt='deleted'>")
                .fadeIn()
        });

    }
});

答案 1 :(得分:3)

你不能同时拥有一个对象fadeOut和fadeIn - 对象一次只能有一个状态(它要么淡入或淡出,要么不是两者都有)。

如果你真的想要这种视觉效果,你将需要两个独立的对象,一个淡出,另一个淡入。例如,当幻灯片淡出一个图像并同时淡入幻灯片的时候下一张图片。它们实际上是淡出一个物体而在另一个物体上消失。

因此,如果您真的希望双重淡入淡出同时为对话提供视觉效果,则需要两个对话框,一个淡出,另一个淡入。

如果你愿意按顺序执行它们,那么旧的对话框会淡出然后新的淡入淡出(两个淡入淡出是一个接一个而不是同一个),那么你可以使用代码类型维塔利建议你在fadeOut()的位置,然后在fadeOut()的完成函数中,更改对话框的内容,然后执行fadeIn()

如果您有理由只想要一个对话框并希望同时淡出,则可以在对话框中淡出()一个内容块并淡入另一个内容块。您可以将每个内容块放在同一个对话框中的自己的div中,然后淡出一个,另一个淡入淡出。您必须手动将两个div放在一起(叠加)。这是可能的,但需要更多的工作。