Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery是否在开始幻灯片放映之前等待页面完成加载?_Javascript_Jquery_Slideshow_Preload - Fatal编程技术网

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> $(函

我有一个带有旋转标题图像的站点(你们都见过)。我想做以下工作:

  • 加载整个页面和第一个标题图像
  • 每x秒或下一个图像加载完毕后(以较晚者为准),启动标题图像幻灯片切换

  • 我真的不需要一个真正做到这一点的示例。

    如果您传递jQuery函数,它将在页面加载之前不会运行:

    <script type="text/javascript">
    $(function() {
        //your header rotation code goes here
    });
    </script>
    
    
    $(函数(){
    //标题旋转代码在这里
    });
    
    第一个可以通过jquery中的document.ready函数实现

    $(document).ready(function(){...});
    
    可以使用任意数量的插件实现图像的变化

    如果愿意,可以检查图像是否加载了complete属性。我知道至少malsupjquery循环幻灯片在内部使用了这个函数

    $(document).ready机制意味着在DOM成功加载后启动,但不保证页面引用的图像的状态

    如有疑问,请返回“正常运行”窗口。加载事件:

    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毫秒发射一次

  • 如果在其中一个间隔期间 此图像的完整属性为 设置为true时,间隔被清除 旋转操作安全可靠 开始


  • 您可能已经知道$(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不适合这样的东西。我承认这不是很有用的回答