2012-07-03 141 views
0

我正在使用jquery动画功能的网站上工作,从加载时从左上角扩展网站。我实际上并不是那个为该功能编写代码的人,所以我不太熟悉它。它确实有效,但目前看来根本没有工作。我知道.js文件正在加载并且正在运行,因为其中的第一个代码是显示“页面正在加载”消息的时间延迟。但是,它只是显示已经加载的页面,而不是动画显示从左上角出现的页面并滑入页面。我包括了CSS并且标记了,尽管我不相信这是问题所在。任何帮助,将不胜感激!谢谢!jquery动画不是动画

注:我们正在使用jQuery 1.7.2版本

的CSS:

#builder 
    { 
     position:relative; 
     min-height:100%; 
     min-width:100%; 
     z-index:999; 
    } 

中的JavaScript:

function hideIt() { 

    document.getElementById("wait").style.display = "none"; 

} 

setTimeout("hideIt()", 1000); 

function showIt() { 

    document.getElementById("builder").style.display = "block"; 
} 

setTimeout("showIt()", 2500); 

function build() { 
    $(document).ready(function() { 

     $("#builder").animate({ height: '0%', width: '0%' }, 1); 
     $("#builder").animate({ height: '100%', width: '100%' }, 2000); 


    }); 
} 

的标记:

<body onLoad="build()"> 
<img src="wait.gif" id="wait" style="display:block;" /> 

wait.gif仅仅是说“页面加载”图片...

和页面被包裹在这些:

<div id="builder" align=center style="display:none;"> 

回答

1

如果#builder元素在显示前隐藏了2.5秒,那么动画将在元素显示时完成。对身体的onLoad删除内联函数和尝试:

function hideIt() { 
    $("#wait").hide(); 
} 

function showIt() { 
    $("#builder").show(2000); //should do somewhat the same as animating from the top left 
} 

$(function() { 
    setTimeout(hideIt, 1000); //no need to quote the functions and eval them 
    setTimeout(showIt, 2500); 
}); 

或只是

$("#wait").delay(1000).hide(10); 
$("#builder").delay(2500).show(2000) 
+0

这实际上正是他们想要它做的事情,但它只是动画背景图片而不是页面上的所有内容...... – Blake

+1

不确定内容未被动画是什么意思,在#builder元素中,否则它当然不会被动画,或者它只是不按照你喜欢的方式动画? – adeneo

+0

我认为这很可能是问题所在,某些标记可​​能需要更改,明天我将不得不看看它,因为我已经完成了晚上的工作,非常感谢您的帮助! – Blake

0

尝试调整像这样的代码:

$(document).ready(function() { 
    $('#wait').hide(1000, function(){ // hide the #wait 
     $("#builder").show().animate({ // then show, then animate #builder 
      height: '100%', 
      width: '100%' 
     }, 2000); 
    }); 
}); 

附注:请记住,当您使用百分比和包含#builder的元素时,还需要设置其高度和宽度。

+0

我尝试过,但与JavaScript的它从来没有得到过页面加载消息... – Blake

+1

我在做编辑代码。此外,如果您现在在文档良好并加载时调用'build()',则可以从body标签中删除onLoad属性。 AND:动画在'#builder'被显示之前很久就发生了。我认为你希望它在第一次出现的时候能够制作成全尺寸的动画? – Joey

+0

好吧,我从我的身体标记中删除了onload,并用新的代码替换了旧代码,但它仍然没有越过该页面正在加载的图片。 – Blake

0

很可能在您的show()被调用之前很久就会动画了。所以当它显示时,动画就完成了。