加载页面jQuery不会超过页面加载

时间:2016-05-20 23:01:23

标签: javascript jquery

希望你可以提供帮助... jQuery& javascript,但试图有一个加载封面页,所以所有的内容都立即显示,但它卡住了,不会超过加载页面,但在jsfiddle它将超过加载页面,这是没有意义的。

这里是小提琴 - http://jsfiddle.net/adeneo/Egtwx/1/

这是我的代码(相同......

 <div id="cover">LOADING</div>

 <script>

 $(window).on('load', function() {
   $("#cover").fadeOut(1000);
  });

   //jsFiddle does not fire the window onload properly, substituted with fake         load

function newW() {
  $(window).load();
}
setTimeout(newW, 100);


 </script>

这里是我脚本标签中的所有代码,也许这是冲突并导致它无法工作..?

<script>
$(window).ready(function() {
  $("#cover").fadeOut(2000);
});

//jsFiddle does not fire the window onload properly, substituted with fake      load

function newW() {
  $(window).load();
}
setTimeout(newW, 100);

$(document).ready(function() {
  //Check to see if the window is top if not then display button
  $(window).scroll(function() {
    if ($(this).scrollTop() > 100) {
      $('.scrollToTop').fadeIn();
    } else {
      $('.scrollToTop').fadeOut();
    }
  });
  //Click event to scroll to top
  $('.scrollToTop').click(function() {
    $('html, body').animate({
      scrollTop: 0
    }, 800);
    return false;
  });
});
</script>

2 个答案:

答案 0 :(得分:1)

在Chrome中,您必须更改设置以允许设置本地数据。

要更改此设置,请转到Settings > Privacy > Content设置,然后将cookies设置更改为“允许设置本地数据”。

这将解决您的浏览器的问题,但不能解决用户浏览器的问题。相反,您需要使用$(document)而不是$(window),因为$(document)不受安全设置的影响。

“加载”事件实际上是“就绪”事件,因此如果您更改它,它就会起作用。

$(window).on("ready", function() {
    $("#cover").fadeOut(2000);
});

我通常使用这种形式,因为它更“现代”的jQuery风格:

$(window).ready(function() {
    $("#cover").fadeOut(2000);
});

答案 1 :(得分:1)

你的小提琴将你的代码包裹在onload中,通过小提琴下拉,这是你setTimeout被执行的时候..

您应该可以将此用于onload事件:

注意我创建了一个自定义事件,以明确发生的事情。

$(window).on('myload', function() {
  $("#cover").fadeOut(200);
});

function newW() {
  setTimeout(function() {
    $(window).trigger('myload');
  }, 1000);
}
window.onload = newW;

请注意,您发布的两个代码段略有不同。