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 相关文章推荐
DHTML Slide Show script图片轮换
Mar 03 Javascript
javascript最常用与实用的创建类的代码
Aug 12 Javascript
javascript实现促销倒计时+fixed固定在底部
Sep 18 Javascript
jqGrid读取选择的多行的某个属性代码
May 18 Javascript
使用jquery 简单实现下拉菜单
Jan 14 Javascript
Jquery基础教程之DOM操作
Aug 19 Javascript
使用JavaScript实现点击循环切换图片效果
Sep 03 Javascript
react-native使用react-navigation进行页面跳转导航的示例
Sep 07 Javascript
vue解决跨域路由冲突问题思路解析
Nov 03 Javascript
微信小程序实现选项卡功能
Jun 19 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
Nov 30 Javascript
js中call()和apply()改变指针问题的讲解
Jan 17 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
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
php计算title标题相似比的方法
2015/07/29 PHP
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
js实现微信聊天效果
2020/08/09 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
python实现redis三种cas事务操作
2017/12/19 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
详解python播放音频的三种方法
2019/09/23 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
node中使用shell脚本的方法步骤
2021/03/23 Javascript
个人收入证明范本
2014/01/12 职场文书
党员公开承诺书内容
2014/05/20 职场文书
庆元旦演讲稿
2014/09/15 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
2014财务年度工作总结
2014/11/11 职场文书
介绍信怎么写
2015/01/30 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
一文弄懂MySQL索引创建原则
2022/02/28 MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android