我正在开发一个使用jquery动画功能的网站,在网站加载时从左上角展开网站。我实际上并不是那个为该功能编写代码的人,所以我对它并不过分熟悉。它确实在某一点上起作用,但目前它似乎根本不起作用。我知道.js文件正在加载并且正在运行,因为其中的第一位代码是显示“正在加载页面”消息的时间延迟。但是它只是显示已经加载的页面,而不是动画从左上角出现并滑入的页面。我包括CSS并标记,尽管我不相信这就是问题所在。任何帮助,将不胜感激!谢谢!
注意:我们正在使用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;">
答案 0 :(得分:1)
如果#builder元素在显示之前隐藏了2.5秒,则动画将在元素显示时完成。删除body 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)
答案 1 :(得分: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
的元素时,还需要设置它的高度和宽度。
答案 2 :(得分:0)
可能在你的show()
被调用之前很久就被动画了。所以当它显示时,动画就完成了。