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


Posted in Javascript onMarch 13, 2015

有时候我们在前端开发工作中为了获取图片的信息,需要在图片加载完成后才可以正确的获取到图片的大小尺寸,并且执行相应的回调函数使图片产生某种显示效果。本文主要整理了几种常见的javascipt判断图片加载完成时的方法,并通过代码与实际应用相结合进行解释与说明。

onload方法

通过向img标签添加onload属性,并填入相应的函数来执行后续的javascipt代码。如下代码例子中img元素默认是不显示的,通过onload判断加载完成后再将图片显示出来。

<img class="pic1" onload="get(this)" src="..." style='display:none' />

 

<script type="text/javascript">

function get(ts){

 ts.style.display = 'block';  //显示图片

}

</script>

优点:可以将javascript代码部分放置于页面的任何部分加载,并且可以用于多数任意图片上。使用比较简单,易理解。

缺点:必须在每个标签上都贴上onlaod属性,在某些无法直接操作HTML代码,或者需要代码精简的情况下不适用

javascipt原生方法

选取指定ID的图片,通过onload指定回调方法,在图片加载完成后弹出“图片加载已完成”字样提示。

<img id="pic1" src="..." />

 

<script language="JavaScript">

    document.getElementById("pic1").onload = function () {

        alert("图片加载已完成");

    }

</script>

优点:简单易用,不影响HTML代码。

缺点:只能指定一个元素,javascipt代码必须置于图片元素的下方

jquery方法

为每个class为pic1的图片元素绑定事件,通过jquery的load方法,将元素渐现出来。

注意,不要在$(document).ready()里绑定load事件。

<script type="text/javascript">

$(function(){

 $('.pic1').each(function() {

  $(this).load(function(){

   $(this).fadeIn();

  });

    });

})

</script>

优点:可以批量绑定元素事件,并且不影响HTML代码内容

缺点:需要jquery库的支持,代码需要放置到需要操作元素的下方。

Javascript 相关文章推荐
Jquery 基础学习笔记
May 29 Javascript
JavaScript获取和设置CheckBox状态的简单方法
Jul 05 Javascript
js替代copy(示例代码)
Nov 27 Javascript
JQuery中$.ajax()方法参数详解及应用
Dec 12 Javascript
wap图片滚动特效无css3元素纯js脚本编写
Aug 22 Javascript
js 加密压缩出现bug解决方案
Nov 25 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
Mar 18 Javascript
js数组如何添加json数据及js数组与json的区别
Oct 27 Javascript
vue实现tab切换外加样式切换方法
Mar 16 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
Jun 21 Javascript
Vue解析带html标签的字符串为dom的实例
Nov 13 Javascript
Vue实现附件上传功能
May 28 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
Mar 13 #Javascript
JavaScript中常用的六种互动方法示例
Mar 13 #Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 #Javascript
检测一个函数是否是JavaScript原生函数的小技巧
Mar 13 #Javascript
DOM操作一些常用的属性汇总
Mar 13 #Javascript
JavaScript获取页面上被选中文字的方法技巧
Mar 13 #Javascript
jQuery源码分析之Callbacks详解
Mar 13 #Javascript
You might like
搜索引擎技术核心揭密
2006/10/09 PHP
PHP新手入门学习方法
2011/05/08 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
ES6学习之变量的解构赋值
2017/02/12 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
详解flask表单提交的两种方式
2018/07/21 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
几个数据库方面的面试题
2016/07/01 面试题
大专会计自我鉴定
2014/02/06 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
公司员工离职证明书
2014/10/04 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
晚会开幕词
2015/01/28 职场文书
解除合同协议书范本
2016/03/21 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android
delete in子查询不走索引问题分析
2022/07/07 MySQL