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 相关文章推荐
学习ExtJS fit布局使用说明
Oct 08 Javascript
基于jquery的点击链接插入链接内容的代码
Jul 31 Javascript
跟我学习javascript的隐式强制转换
Nov 16 Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 Javascript
vue-quill-editor实现图片上传功能
Aug 08 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
Nov 02 Javascript
Material(包括Material Icon)在Angular2中的使用详解
Feb 11 Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 Javascript
vue项目中js-cookie的使用存储token操作
Nov 13 Javascript
小程序实现点击tab切换左右滑动
Nov 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
50个PHP程序性能优化的方法
2014/06/02 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
python 获取网页编码方式实现代码
2017/03/11 Python
python爬虫之百度API调用方法
2017/06/11 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
创业计划书的写作技巧及要点
2014/01/31 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
小学同学聚会感言
2015/07/30 职场文书
加强党性修养心得体会
2016/01/21 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
TS 类型收窄教程示例详解
2022/09/23 Javascript
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers