javascript:“一切都已完成绘制到屏幕”事件?

javascript:“一切都已完成绘制到屏幕”事件?,javascript,events,dom,browser,Javascript,Events,Dom,Browser,是否有一个javascript事件可以让我挂接,让我知道什么时候一切都完成绘制到浏览器屏幕?图像、背景和DOM元素使用适当的CSS 我正在设置一些加载。。。只有当页面完美并准备好向用户显示时才应消失的div 我知道$document.ready和onLoad,但这不是我的意思 我正在使用angularJS,但我认为这不重要 谢谢 $document.ready或onLoad功能有什么问题 $(window).load(function() { $(".loading").hide();

是否有一个javascript事件可以让我挂接,让我知道什么时候一切都完成绘制到浏览器屏幕?图像、背景和DOM元素使用适当的CSS

我正在设置一些加载。。。只有当页面完美并准备好向用户显示时才应消失的div

我知道$document.ready和onLoad,但这不是我的意思

我正在使用angularJS,但我认为这不重要


谢谢

$document.ready或onLoad功能有什么问题

$(window).load(function()
{
    $(".loading").hide();
}

虽然此解决方案不会触发任何事件,但它应该对您有所帮助

如下定义CSS:

#dvLoading
{
   background:#000 url(images/loader.gif) no-repeat center center;
   height: 100px;
   width: 100px;
   position: fixed;
   z-index: 1000;
   left: 50%;
   top: 50%;
   margin: -25px 0 0 -25px;
}
请在中使用上述内容

<div id="dvLoading"></div>
演示:


来源:

您可能知道,$document.ready只等待HTML结构和Javascript加载触发

你最好使用:

$(window).load(function(){
    //do stuff here
});

由于您使用的是AngularJS,要等待页面中的所有内容都加载到图片中,我可以假设您的图像和内容大部分是动态加载的,在这种情况下,您很难准确地知道您的所有内容是何时生成的,因此,您也不知道何时将加载所有图像,因为所有图像都将异步加载

您可以做的是将小部件/应用程序/控制器的DOM占位符设置为类似加载的状态(默认为loading.gif)?当Angular生成内容时,它只会替换它。查看如何在某些指令上实现动画

然后在这些小部件/应用程序/控制器中,您必须对其中的内容执行相同的操作


因此,基本上它是一个级联加载屏幕,应用程序的每一级都像饮水机一样加载。

而您指定的jQuery包装器肯定不会有帮助。。。但有什么不适合您的需要呢?加载所有图像和外部资源后,会引发加载事件。不过要小心,这包括第三方脚本,有时加载速度可能会很慢。window.onload应该足够了。onload不能与使用AngularJS之类的东西的动态应用程序一起工作。这只表明DOM已准备就绪。并非所有图像都已加载,等等@JonathanSampson我的错误,更正为$window.load。。。
$(window).load(function(){
    //do stuff here
});