js判断图片加载完成后获取图片实际宽高的方法


Posted in Javascript onFebruary 25, 2016

本文实例讲述了js判断图片加载完成后获取图片实际宽高的方法。分享给大家供大家参考,具体如下:

通常,我们会用jq的.width()/.height()方法获取图片的宽度/高度或者用js的.offsetwidth/.offsetheight方法来获取图片的宽度/高度,但这些方法在我们通过样式设置了图片的宽高后获取的就不是图片的实际宽高,这显然在有些时候不是我们想要的结果,那么有没有一种方法来获取这样的实际宽高呢?答案是有的。下面的代码就能解决这样的问题:

<img src="01.jpg" id="test" width="250px">

js code:

//图片加载完成后获取图片实际宽高
var _test = document.getElementById("test");
test.onload = function(){
  imgSize.call(_test);
}
function imgSize(){
  var imgObj = new Image();
  imgObj.src = this.src;
  alert(imgObj.width + "\n" + imgObj.height);
}

如果想在其他方法中调用这个实际的宽高,应该将alert(imgObj.width + "\n" + imgObj.height);改为return imgObj,然后是调用的方法:

window.onload = function(){
    function a(){
      var real= imgSize.call(_test);
      var realwidth = real.width;
      alert(realwidth);
    }
    a();
}

以上方法过于繁琐,经过本人的提炼,简写如下:

window.onload = function(){
    var _test = document.getElementById("test"); //若是jq,则直接将此代码换成 var _test = $("#test"); 即可。
    var imgObj = new Image();
    imgObj.src = _test.src; //若是jq,则直接将此代码换成 imgObj.src = _test.attr("src"); 即可。
    alert(imgObj.width);
}

这样,就可以在其他方法里直接调用图片的实际宽高了。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Ext 今日学习总结
Sep 19 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
Mar 24 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
Javascript基础教程之switch语句
Jan 18 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
Jun 17 Javascript
利用VUE框架,实现列表分页功能示例代码
Jan 12 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
Mar 24 jQuery
jQuery实现下拉菜单的实例代码
Jun 19 jQuery
AjaxUpLoad.js实现文件上传
Mar 05 Javascript
js实现文章目录索引导航(table of content)
May 10 Javascript
js实现限定范围拖拽的示例
Oct 26 Javascript
antd配置config-overrides.js文件的操作
Oct 31 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
Feb 25 #Javascript
jquery zTree异步加载简单实例讲解
Feb 25 #Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 #Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
Feb 25 #Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 #Javascript
jquery ztree实现模糊搜索功能
Feb 25 #Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 #Javascript
You might like
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python 快速排序代码
2009/11/23 Python
Python多线程学习资料
2012/12/19 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
Python制作exe文件简单流程
2019/01/24 Python
Python 复平面绘图实例
2019/11/21 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
用python计算文件的MD5值
2020/12/23 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
大学军训感言1000字
2014/02/25 职场文书
党员公开承诺书
2014/03/25 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
Go gorilla/sessions库安装使用
2022/08/14 Golang