您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Javascript获取图片原始宽度和高度的方法详解

2025/5/27 6:41:46发布19次查看
前言
网上关于利用javascript获取图片原始宽度和高度的方法有很多,本文将再次给大家谈谈这个问题,或许会对一些人能有所帮助。
方法详解
页面中的img元素,想要获取它的原始尺寸,以宽度为例,可能首先想到的是元素的innerwidth属性,或者jquery中的width()方法。
如下:
<img id="img" src="1.jpg"> <script type="text/javascript"> var img = document.getelementbyid("img"); console.log(img.innerwidth); // 600 </script>
这样貌似可以拿到图片的尺寸。
但是如果给img元素增加了width属性,比如图片实际宽度是600,设置了width为400。这时候innerwidth为400,而不是600。显然,用innerwidth获取图片原始尺寸是不靠谱的。
这是因为 innerwidth属性获取的是元素盒模型的实际渲染的宽度,而不是图片的原始宽度。
<img id="img" src="1.jpg" width="400"> <script type="text/javascript"> var img = document.getelementbyid("img"); console.log(img.innerwidth); // 400 </script>
jquery的width()方法在底层调用的是innerwidth属性,所以width()方法获取的宽度也不是图片的原始宽度。
那么该怎么获取img元素的原始宽度呢?
naturalwidth / naturalheight
html5提供了一个新属性naturalwidth/naturalheight可以直接获取图片的原始宽高。这两个属性在firefox/chrome/safari/opera及ie9里已经实现。
如下:
var naturalwidth = document.getelementbyid('img').naturalwidth, naturalheight = document.getelementbyid('img').naturalheight;
naturalwidth / naturalheight在各大浏览器中的兼容性如下:
所以,如果不考虑兼容至ie8的,可以放心使用naturalwidth / naturalheight属性了。
ie7/8中的兼容性实现:
在ie8及以前版本的浏览器并不支持naturalwidth和naturalheight属性。
在ie7/8中,我们可以采用new image()的方式来获取图片的原始尺寸,如下:
function getnaturalsize (domlement) { var img = new image(); img.src = domelement.src; return { width: img.width, height: img.height }; } // 使用 var natural = getnaturalsize (document.getelementbyid('img')), naturewidth = natural.width, natureheight = natural.height;
ie7+浏览器都能兼容的函数封装:
function getnaturalsize (domlement) { var naturesize = {}; if(window.naturalwidth && window.naturalheight) { naturesize.width = domlement.naturalwidth; naturesizeheight = domlement.naturalheight; } else { var img = new image(); img.src = domelement.src; naturesize.width = img.width; naturesizeheight = img.height; } return naturesize; } // 使用 var natural = getnaturalsize (document.getelementbyid('img')), naturewidth = natural.width, natureheight = natural.height;
总结
以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助。如果有疑问大家可以留言交流。
更多javascript获取图片原始宽度和高度的方法详解。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product