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 相关文章推荐
js的alert弹出框出现乱码解决方案
Sep 02 Javascript
js获取字符串最后一位方法汇总
Nov 13 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
Mar 26 Javascript
JS去除iframe滚动条的方法
Apr 01 Javascript
JavaScript数组和循环详解
Apr 27 Javascript
Bootstrap3下拉菜单的实现
Feb 22 Javascript
Vue.js对象转换实例
Jun 07 Javascript
Java设计中的Builder模式的介绍
Mar 22 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
Aug 19 Javascript
详解jQuery中的getAll()和cleanData()
Apr 15 jQuery
vue中利用Promise封装jsonp并调取数据
Jun 18 Javascript
vue渲染方式render和template的区别
Jun 05 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
操作Oracle的php类
2006/10/09 PHP
php 数组的一个悲剧?
2011/05/11 PHP
PHP数组操作汇总 php数组的使用技巧
2011/07/17 PHP
php中in_array函数用法分析
2014/11/15 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
JS实现简单的顶部定时关闭层效果
2014/06/15 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
在Python的循环体中使用else语句的方法
2015/03/30 Python
使用Python对Access读写操作
2017/03/30 Python
python逆向入门教程
2018/01/15 Python
python 使用pandas计算累积求和的方法
2019/02/08 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
html5时钟实现代码
2010/10/22 HTML / CSS
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
五一家具促销方案
2014/01/10 职场文书
供应链金融服务方案
2014/05/25 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
关于springboot配置druid数据源不生效问题(踩坑记)
2021/09/25 Java/Android
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS