我有一个带有旋转标题图片的网站(大家都见过)。我想要做到以下几点:
- 加载整个页面以及第一张标题图片
- 在x秒后或下一张图片加载完毕后开始幻灯片过渡
我还没有真正需要这样做的示例。
我有一个带有旋转标题图片的网站(大家都见过)。我想要做到以下几点:
我还没有真正需要这样做的示例。
你可以尝试一下
$(function()
{
$(window).bind('load', function()
{
// INSERT YOUR CODE THAT WILL BE EXECUTED AFTER THE PAGE COMPLETELY LOADED...
});
});
我曾经遇到同样的问题,这段代码对我有效。希望它也能解决你的问题!
使用jQuery中的document.ready函数可以实现第一个目标。
$(document).ready(function(){...});
可以使用任意数量的插件来实现图片变化。
如果您想要检查图片是否加载完成,可以使用complete属性。我知道至少malsup jquery cycle幻灯片内部使用了这个函数。
你可能已经了解了$(document).ready(...), 但你需要的是预加载机制,即在显示内容之前获取数据(文本、图片或其他)。这可以使网站感觉更专业。
看一下jQuery.Preload(还有其他工具)。jQuery.Preload有几种触发预加载的方式,并提供回调功能(当图像预加载时,再显示它)。我经常使用它,效果很好。
以下是使用jQuery.Preload开始的简单步骤:
$(function() {
// First get the preload fetches under way
$.preload(["images/button-background.png", "images/button-highlight.png"]);
// Then do anything else that you would normally do here
doSomeStuff();
});
$(document).ready机制是在DOM成功加载后触发,但不保证页面引用的图像状态。
如果不确定,请回到经典的window.onload事件:
window.onload = function()
{
//your code here
};
现在,这显然比jQuery方法慢。但是,你可以在两者之间做出妥协:
$(document).ready
(
function()
{
var img = document.getElementById("myImage");
var intervalId = setInterval(
function()
{
if(img.complete)
{
clearInterval(intervalId);
//now we can start rotating the header
}
},
50);
}
);
稍作解释:
我们获取要完全加载的图像的DOM元素
然后设置一个每50毫秒触发一次的间隔。
如果在这些间隔之一期间,该图像的complete属性被设置为true,则清除间隔并可以安全地开始旋转操作。
window.onload
的钩子函数,可以使用 jQuery 将您的函数附加到 $(window).load(function () {});
。请注意保持翻译后的内容与原文意思一致,同时尽可能让翻译更加流畅易懂。 - Andreas Grech$("#yourdiv").load(url, function(){
your functions goes here !!!
});
<script type="text/javascript">
$(function() {
//your header rotation code goes here
});
</script>