这个使用JQuery fadeout 函数在淡出效果完成后执行淡入到底是如何工作的?

How exactly works this use of the JQuery fadeout function that perform the fadein after the fadeout effect is completed?

我是 JavaScript 和 JQuery 的新手,我对使用淡出效果隐藏 div 并在其位置显示的代码究竟如何工作有以下疑问另一个 div 使用淡入淡出效果。

它工作正常,但我对它的精确度有一些疑问。

所以我的代码如下:

$("#inserimentoVariazioneAnticipo").fadeOut("slow", function() {
    $("#confermaVariazioneAnticipo").fadeIn("slow");
});

我知道它是以这种方式实现的,以确保 fadeIn() 函数被调用 AFTER fadeOut() 功能已完全执行,但我发现有些难以理解为什么以这种方式实现。

我知道在 JavaScript 中我可以将一个函数作为另一个函数的参数传递。

阅读官方 JQuery 文档 (http://api.jquery.com/fadeout/#fadeOut-duration-easing-complete) 我发现:

.fadeOut( [duration ] [, easing ] [, complete ] )

所以在这种情况下我有:

是我的推理正确还是我遗漏了什么?

没错。 complete 函数是 fade 函数完成时调用的回调。回调函数是一种常见的 javascript 模式,尤其是对于非阻塞代码。您不想在播放淡出动画时停止 运行 中的 javascript 的其余部分。相反,您只需说 "hey, run this code when you're done",然后您的脚本的其余部分就可以继续。

对于持续时间,您还可以指定毫秒,例如.fadeOut(300)

除非指定,否则始终使用 Swing。使用 vanilla jQuery,你只有两种缓动选项,swing 和 linear,但是有一些方法可以扩展缓动功能。