首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >window.on('load',function() {})完成后是否仍在加载页面元素?

window.on('load',function() {})完成后是否仍在加载页面元素?
EN

Stack Overflow用户
提问于 2016-07-01 21:10:22
回答 1查看 557关注 0票数 2

我想在页面上加载所有元素并就位后隐藏一个微调器div。我在window.on('load',... )中的微调div上放了一个fadeOut()函数,但是我可以看到选项卡/页面仍然在加载,即使元素/资源还没有处于正确的css位置。如何强制微调器div保持到一切就位,即直到选项卡上的加载图标完成旋转?

这是我的代码:

代码语言:javascript
复制
$(window).load(function() {
 $('#spinner').fadeOut();
}

jQuery(document).ready(function($){
 // Append the spinner div.
 $("#spinner").append(spinner.el);
}
EN

回答 1

Stack Overflow用户

发布于 2016-07-01 23:38:55

这听起来像是有大量的CSS,而且在页面的所有内容加载之后,浏览器要花很长时间来计算每个元素的样式。您可以使用您的超时想法做一些实验,并轮询页面上的一个或多个元素,以查看计算出的样式何时与预期样式匹配。分配给计算样式的最后一个元素可能会在每次加载页面时有所不同,并且/或者根据浏览器的不同而不同,因此您肯定需要测试您的方法。下面的示例使用accepted here中的一些信息来轮询元素以获得预期的样式。

代码语言:javascript
复制
var expectedTop="5px";

function ready() {
    $('#spinner').fadeOut();
}

function poll() {
    var o = document.getElementById("pollElementId");
    var comp = o.currentStyle || getComputedStyle(o,null);
    if(comp.top==expectedTop) {
        ready();
    }
    else {
        setTimeout("poll()",500);
    }
}

jQuery(document).ready(function($){
    $("#spinner").append(spinner.el);
    poll();
}

这里pollElementId是我们通过CSS定位的DOM中元素的id。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38146321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档