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 相关文章推荐
javascript 判断数组是否已包含了某个元素的函数
May 30 Javascript
jquery插件之easing使用
Aug 19 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
Jan 21 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
Oct 11 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
Jan 23 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
Jul 06 Javascript
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
Nov 02 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
Jan 15 Javascript
vue-cli3配置与跨域处理方法
Aug 17 Javascript
vue中实现回车键登录功能
Feb 19 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
建立文件交换功能的脚本(一)
2006/10/09 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
Mac中安装nvm的教程分享
2017/12/11 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
Python中的with...as用法介绍
2015/05/28 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
花店创业计划书范文
2014/02/07 职场文书
挂科检讨书范文
2014/02/20 职场文书
工作睡觉检讨书
2014/02/25 职场文书
拓展训练激励口号
2014/06/17 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
工地材料员岗位职责
2015/04/11 职场文书
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android