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 相关文章推荐
OfflineSave离线保存代码再次发布使用说明
May 23 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
Apr 02 Javascript
jQuery遍历对象、数组、集合实例
Nov 08 Javascript
JS的数组迭代方法
Feb 05 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
Mar 14 Javascript
深入理解逻辑表达式的用法 与或非的用法
Jun 06 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
Apr 13 Javascript
AngularJS改变元素显示状态
Apr 20 Javascript
ES6新特性六:promise对象实例详解
Apr 21 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
Apr 08 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
Sep 16 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产生随机字符串函数
2006/12/06 PHP
php 保留小数点
2009/04/21 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
PHP递归的三种常用方式
2019/02/28 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
JavaScript实现简单音乐播放器
2020/04/17 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
Python3计算三角形的面积代码
2017/12/18 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
对numpy中数组元素的统一赋值实例
2018/04/04 Python
在python 中实现运行多条shell命令
2019/01/07 Python
Python微信操控itchat的方法
2019/05/31 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
python requests.get带header
2020/05/05 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
俄罗斯珠宝市场的领导者之一:Бронницкий ювелир
2019/10/02 全球购物
什么是会话Bean
2015/05/14 面试题
关于中国梦的演讲稿
2014/04/23 职场文书
法制宣传标语
2014/06/23 职场文书
户籍证明书标准模板
2014/09/10 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
使用pytorch实现线性回归
2021/04/11 Python