Javascript JQuery是否在开始幻灯片放映之前等待页面完成加载?
我有一个带有旋转标题图像的站点(你们都见过)。我想做以下工作:Javascript JQuery是否在开始幻灯片放映之前等待页面完成加载?,javascript,jquery,slideshow,preload,Javascript,Jquery,Slideshow,Preload,我有一个带有旋转标题图像的站点(你们都见过)。我想做以下工作: 加载整个页面和第一个标题图像 每x秒或下一个图像加载完毕后(以较晚者为准),启动标题图像幻灯片切换 我真的不需要一个真正做到这一点的示例。如果您传递jQuery函数,它将在页面加载之前不会运行: <script type="text/javascript"> $(function() { //your header rotation code goes here }); </script> $(函
我真的不需要一个真正做到这一点的示例。如果您传递jQuery函数,它将在页面加载之前不会运行:
<script type="text/javascript">
$(function() {
//your header rotation code goes here
});
</script>
$(函数(){
//标题旋转代码在这里
});
第一个可以通过jquery中的document.ready函数实现
$(document).ready(function(){...});
可以使用任意数量的插件实现图像的变化
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);
}
);
解释一下:
您可能已经知道$(document).ready(…)。你需要的是一个预加载机制;在显示数据之前获取数据(文本、图像或其他)的东西。这可以让网站感觉更专业 看看(还有其他的)。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();
});
你可以试试
$(function()
{
$(window).bind('load', function()
{
// INSERT YOUR CODE THAT WILL BE EXECUTED AFTER THE PAGE COMPLETELY LOADED...
});
});
我也有同样的问题,这个代码对我有效。这对你来说也很有用 你试过这个吗
$("#yourdiv").load(url, function(){
your functions goes here !!!
});
“页面已加载”是否意味着所有其他图像也将加载?否,它仅意味着dom已创建。如果确实需要等待页面完成加载,则可以执行:$(窗口)。加载(函数(){//代码});此符号只是document.ready的快捷方式。这与页面加载事件无关。我不认为这些都会等到下一个iamge加载后再转换,对吗?window.onload=function()是个坏主意,它会阻止您从任何其他内容设置onload,或删除任何其他“onload”@e-satis:为了避免覆盖已经附加到
窗口的钩子。onload
,请使用jQuery附加您的函数:$(窗口)。load(函数(){})
@e-satis:我特别提到window.onload,因为分配给它的事件处理程序代码保证在图像加载后执行,这不同于jQuery ready函数的行为,也不同于OP所寻找的另一个极端。你说得对,有更好的附加事件的方法,但我不想忽视我试图传达的要点。@Andreas:很高兴了解加载函数。唯一真正的anwser:没有简单的方法。使用插件。e-satis:我不知道你为什么认为使用插件是唯一“真正”的答案。因为:永远不要重新编写代码,你总会发现代码块做得同样好,写得更好。那么评论,还有这个:o@Marin可能是错误的,但我认为bind不适合这样的东西。我承认这不是很有用的回答