为了账号安全,请及时绑定邮箱和手机立即绑定

请求jQuery的官方方法是在执行某事之前等待所有映像加载

请求jQuery的官方方法是在执行某事之前等待所有映像加载

catspeake 2019-06-11 20:46:58
请求jQuery的官方方法是在执行某事之前等待所有映像加载在jQuery中,当您这样做时:$(function() {    alert("DOM is loaded, but images not necessarily all loaded");});它等待DOM加载并执行代码。如果没有加载所有图像,那么它仍然执行代码。如果我们初始化任何DOM内容,比如显示或隐藏元素或附加事件,这显然是我们想要的。假设我想要一些动画,我不希望它在加载所有图像之前运行。在jQuery中是否有一种官方的方法来做到这一点?我最好的方法就是<body onload="finished()">,但我真的不想那样做,除非我必须这样做。注意:有一个jQuery 1.3.1中的错误在InternetExplorer中,它实际上是在执行内部代码之前等待所有映像加载$function() { }..因此,如果您使用该平台,您将得到我正在寻找的行为,而不是上面描述的正确行为。
查看完整描述

3 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

对于jQuery,您可以使用$(document).ready()多姆被装载并且$(window).on("load", handler)在加载所有其他内容(如图像)时执行某些操作。

这种差异可以在以下完整的HTML文件中看到,只要您有jollyrogerJPEG文件(或其他适当的文件):

<html>    <head>        <script src="jquery-1.7.1.js"></script>        <script type="text/javascript">          
  $(document).ready(function() {                alert ("done");            });        </script>    </head><body>  
        Hello
        <img src="jollyroger00.jpg">        <img src="jollyroger01.jpg">        // : 100 copies of this
        <img src="jollyroger99.jpg">    </body></html>

这样,在加载图像之前就会出现警告框,因为DOM已经准备好了。如果你改变了:

$(document).ready(function() {

转入:

$(window).on("load", function() {

那么警报框直到图像被加载了。

因此,要等到整个页面准备就绪,可以使用以下内容:

$(window).on("load", function() {
    // weave your magic here.});


查看完整回答
反对 回复 2019-06-11
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

我编写了一个插件,它可以在图像加载元素时触发回调,或者在每次加载图像时触发一次。

它类似于$(window).load(function() { .. }),但它允许您定义要检查的任何选择器。如果你只想知道什么时候所有的图像#content(例如)已经加载了,这是你的插件。

它还支持加载css中引用的图像,如background-imagelist-style-image

等待格式图片jQuery插件

示例用法

$('selector').waitForImages(function() {
    alert('All images are loaded.');});

关于jsFiddle的示例.

更多的文档可以在GitHub页面上找到。


查看完整回答
反对 回复 2019-06-11
  • 3 回答
  • 0 关注
  • 515 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信