Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 控制图像加载顺序_Javascript_Html_Css - Fatal编程技术网

Javascript 控制图像加载顺序

Javascript 控制图像加载顺序,javascript,html,css,Javascript,Html,Css,我有几张完全相同大小的图片,它们绝对是相互重叠的。所有的图像都是透明的,除了背景图像(z指数最低的图像)外。就行为而言,背景图像始终保留在我的页面上。可以使用复选框打开或关闭其他图像 我的问题是当页面加载到慢速连接时。由于透明图像的大小较小,因此它们首先加载,并在我的背景图像加载完成之前呈现不吸引人的外观 有没有办法控制图像加载的顺序,以便在背景图像加载完成之前我的透明图像不会出现?我不想在这样做时减慢页面加载时间,似乎同步加载图像可以做到这一点。您可以使用图像对象的onLoad事件。大概是这样

我有几张完全相同大小的图片,它们绝对是相互重叠的。所有的图像都是透明的,除了背景图像(z指数最低的图像)外。就行为而言,背景图像始终保留在我的页面上。可以使用复选框打开或关闭其他图像

我的问题是当页面加载到慢速连接时。由于透明图像的大小较小,因此它们首先加载,并在我的背景图像加载完成之前呈现不吸引人的外观


有没有办法控制图像加载的顺序,以便在背景图像加载完成之前我的透明图像不会出现?我不想在这样做时减慢页面加载时间,似乎同步加载图像可以做到这一点。

您可以使用图像对象的onLoad事件。大概是这样的:

<html>    
<head>

    <script type="text/javascript">
        function imageLoaded(imgId, url) {
        alert(imgId);
        var img = document.getElementById(imgId);
        img.src = url;
        }
    </script>
</head>

<body>
    <img id="bg" src="http://pupunzi.files.wordpress.com/2009/01/imgnav.jpg?w=350&h=285" alt="image" onLoad="imageLoaded('img1', 'http://forbiddenplanet.co.uk/blog/wp-content/uploads/2009/01/Adam%20Elliot%20Max%20and%20Mary%20animation.jpg');" />
    <img id="img1" onLoad="imageLoaded('img2', 'http://pupunzi.com/images/components/mb.imageNavigator.png');" alt="image 1" />
    <img id="img2" alt="image 2"/>
</body>

</html>

函数imageLoaded(imgId,url){
警报(imgId);
var img=document.getElementById(imgId);
img.src=url;
}
在本例中,我让警报显示在加载前一个图像时如何加载图像