JavaScript判断图片是否加载完成的三种方式---转

JavaScript判断图片是否加载完成的三种方式

有时需要获取图片的尺寸,这需要在图片加载完成以后才可以。有三种方式实现,下面一一介绍。

一、load事件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<!DOCTYPE HTML>

<html>

<head>

    <meta charset="utf-8">

    <title>img - load event</title>

</head>

<body>

    <img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg">

    <p id="p1">loading...</p>

    <script type="text/javascript">

        img1.onload = function() {

            p1.innerHTML = ‘loaded‘

        }

    </script>

</body>

</html>

测试,所有浏览器都显示出了“loaded”,说明所有浏览器都支持img的load事件。

我还尝试了js通过id也是可以的使用onload方法的。

document.getElementById("img1").onload=function(){
            var height = $(‘#img1‘).height();
            alert(height);
    }

但是jquery元素是没有onload方法

//jquery元素---不行
    $("#img1").onload=function(){
            var height = $(‘#img1‘).height();
            alert(height);
    }

二、readystatechange事件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<!DOCTYPE HTML>

<html>

<head>

    <meta charset="utf-8">

    <title>img - readystatechange event</title>

</head>

<body>

    <img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg">

    <p id="p1">loading...</p>

    <script type="text/javascript">

        img1.onreadystatechange = function() {

            if(img1.readyState=="complete"||img1.readyState=="loaded"){

                p1.innerHTML = ‘readystatechange:loaded‘

            }

        }

    </script>

</body>

</html>

readyState为complete和loaded则表明图片已经加载完毕。测试IE6-IE10支持该事件,其它浏览器不支持。

三、img的complete属性


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<!DOCTYPE HTML>

<html>

<head>

    <meta charset="utf-8">

    <title>img - complete attribute</title>

</head>

<body>

    <img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg">

    <p id="p1">loading...</p>

    <script type="text/javascript">

        function imgLoad(img, callback) {

            var timer = setInterval(function() {

                if (img.complete) {

                    callback(img)

                    clearInterval(timer)

                }

            }, 50)

        }

        imgLoad(img1, function() {

            p1.innerHTML(‘加载完毕‘)

        })

    </script>

</body>

</html>

轮询不断监测img的complete属性,如果为true则表明图片已经加载完毕,停止轮询。该属性所有浏览器都支持。

时间: 2024-10-17 10:57:21

JavaScript判断图片是否加载完成的三种方式---转的相关文章

JavaScript判断图片是否加载完成的三种方式

一.load事件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE HTML> <html> <head>     <meta charset="utf-8">     <title>img - load event</title> </head> <body>     <img id="img1" src=&qu

使用JavaScript判断图片是否加载完成的三种实现方式

有时需要获取图片的尺寸,这需要在图片加载完成以后才可以.有三种方式实现,下面一一介绍. 一.load事件 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>img - load event</title> </head> <body> <img id="img1" src="http:/

JavaScript实现判断图片是否加载完成的3种方法整理

JavaScript实现判断图片是否加载完成的3种方法整理 有时候我们在前端开发工作中为了获取图片的信息,需要在图片加载完成后才可以正确的获取到图片的大小尺寸,并且执行相应的回调函数使图片产生某种显示效果.本文主要整理了几种常见的javascipt判断图片加载完成时的方法,并通过代码与实际应用相结合进行解释与说明. onload方法 通过向img标签添加onload属性,并填入相应的函数来执行后续的javascipt代码.如下代码例子中img元素默认是不显示的,通过onload判断加载完成后再将

JavaScript判断图片是否加载完成

一.load事件 <!DOCTYPE HTML><html> <head>     <meta charset="utf-8">    <title>img - load event</title></head> <body>    <img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb

JQuery的几种页面加载完执行三种方式

jquery加载页面的方法(页面加载完成就执行) 1. 1 $(function(){ 2 $("#a").click(function(){ 3 //adding your code here 4 }); 5 }); 2. 1 $(document).ready(function(){ 2 $("#a").click(function(){ 3 //adding your code here 4 }); 5 }); 3. 1 window.onload = fun

javascript判断图片是否加载完成方法整理

有时候我们在前端开发工作中为了获取图片的信息,需要在图片加载完成后才可以正确的获取到图片的大小尺寸,并且执行相应的回调函数使图片产生某种显示效果.本文主要整理了几种常见的javascipt判断图片加载完成时的方法,并通过代码与实际应用相结合进行解释与说明. onload方法 通过向img标签添加onload属性,并填入相应的函数来执行后续的javascipt代码.如下代码例子中img元素默认是不显示的,通过onload判断加载完成后再将图片显示出来. 1 2 3 4 5 6 7 <img cla

网络慢的时候,JavaScript判断图片是否加载完成

这几天在做项目的时候遇到了一个问题,网络慢的时候图片加载不出来.然后我有个判断是判断图片是否存在并且可用,如果存在并且图片可用的话就显示后台返回回来的图片,不可用的话提示用户点击重新生成的按钮去后台重新获取图片. 这里我用了一个tag来判断显示哪个样式,但是tag是写在了setTimeOut里面的,是一个延时函数,异步的操作.延时300ms的目的就是为了等待图片加载出来,但是当网络慢的时候是满足不了的.网络慢图片没有加载出来300ms之后就会直接走入false,会提示用户重新获取图片,但其实图片

java加载jdbc驱动三种方式的比较

平时连接数据库的时候首先要加载jdbc驱动,这一步骤其实有三种方式,他们的区别?优劣? 快速了解三种加载方式 Class.forName("com.mysql.jdbc.Driver"); DriverManager.registerDriver(new com.mysql.jdbc.Driver()) System.setProperty("jdbc.drivers","com.mysql.jdbc.Driver"); 注释: 第二种与第三种注

Entity Framework加载数据的三种方式。

MSDN文章Loading Related Entities 有 Eagerly Loading Lazy Loading Explicitly Loading 三种方式. 而看到查询中包含Include方法就知道是Eagerly Loading.