JQuery延迟无法正常工作

时间:2011-09-19 23:25:53

标签: jquery

我希望#load显示(隐藏#body)然后隐藏#load,并使用fadein使#body可见。这就是我最终想要的东西。我不认为ajaxstart和stop是可行的方法。这只是一个闪屏。

基本上在页面加载时隐藏#body,显示#load几秒钟,然后隐藏它,然后再显示#body。怎么没有人能想出来的呢!

jsfiddle.net/peTSQ

var body = $( '#body' );

$( body ).hide();
$( this ).show().delay( 3000 ).hide( 0, function () {
   $( body ).show(); 
});

3 个答案:

答案 0 :(得分:1)

此?

var body = $( '#body' );

$( body ).hide();
$( this ).show().delay( 3000 ).hide( 0, function () {
   $( body ).show(); 
});

答案 1 :(得分:0)

根据您希望延迟的时间,您可能会或可能不会接近。此外,您还可以使用简单的setTimeout()函数在一段时间内显示所需的项目。

以下内容将显示600毫秒,然后隐藏该项目:

$("#load").show().delay(600).hide();

根据jQuery文档,delay()函数的目的是:

  

设置计时器以延迟执行队列中的后续项目。

因此,您可能只想使用setTimeout,因为您没有分离任何事件,而只是创建延迟:

setTimeout(function(){ $("#load").show(); }, 600);

答案 2 :(得分:0)

更新:

$("#load").fadeOut("slow", function() { $("body").fadeIn('slow'); });