2

我正在使用波纹管代码来显示进度条。

jQuery('#container').showLoading(
{
      'afterShow':
       function () 
       {
          setTimeout("jQuery('#container').hideLoading()", 1000);
       }
});

进度条在屏幕上显示直到1000毫秒,然后消失。但我希望屏幕上显示进度条直到 (time) = page load. 静态意味着我需要 1000 毫秒,但我希望进度条显示那么多时间.. 页面需要时间来加载。

那么如何获取页面加载时间并将其传递到这里?

4

2 回答 2

2

我们需要做的是首先显示进度指示器,然后在页面完全加载时隐藏它。当 DOM 准备好时,我们可以通过将 load 事件绑定到 window 对象来做到这一点。

请注意:在这么小的页面上,您可能不会注意到加载程序,因为它会发生得太快。

jQuery(document).ready(function() {

  showHideLoading(); // load this func as soon as the doc is ready

});

function showHideLoading() {

  // We'll be referencing #loader more than once so let's cache it
  var loader = jQuery("#loader");

  // now we'll show the #loader
  loader.show();

  // We'll set up a new event so that when everything on the page
  // has finished loading, we hide our #loader
  jQuery(window).on("load", function() {
    loader.fadeOut(500);
  });
}
body {
  margin: 0;
  }
img {
  max-width: 100%;
  /*this is only here to make the page load a little more slowly */
}
#loader {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);

}
#loader div {
  width: 150px;
  height: 80px;
  margin: -40px 0 0 -75px;
  background: #fff;
    position: absolute;
  top: 50%;
  left: 50%;
  text-align: center;
  border-radius: 50%;
  line-height: 80px;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<!-- this is only here to make the page load a little more slowly -->
<img src="http://lorempixel.com/image_output/cats-q-c-1920-1080-8.jpg" />


<div id="loader">

  <div>Loading</div>

</div>

于 2013-05-24T14:22:32.417 回答
0

您不会获得页面加载时间,但是您可以绑定到window.onload事件以隐藏进度条。window.onload仅当页面完全加载时才会触发事件。

        window.onload = function() {
            jQuery('#container').hideLoading();
        };
于 2013-04-10T06:40:15.517 回答