JavaScript 获取图片尺寸及放大图片的实现方法
作者:代码拾荒时间:2026-10-27 14:20:18浏览:277
本文介绍在JavaScript中获取图片实际尺寸的方法,对比DOM属性width/height与style.width的区别,并演示如何通过naturalWidth和naturalHeight实现图片放大而不失真。
获取图片尺寸与DOM属性分析
示例代码如下:
<img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt="MM" title="MM(实际大小200*300)" onclick="getWH(this)" width="200" height="300"/>
<script>
function getWH(t){
//获取DOM属性
console.log("width="+t.width);//输出200
console.log("height="+t.height);//输出300
//操作CSS样式
console.log("styleWidth="+t.style.width);//结果为空
console.log("styleHeight="+t.style.height);//结果为空
} 2)获取图片尺寸(不设置宽高)
示例代码如下:
<img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt="MM" title="MM(实际大小200*300)" onclick="getWH(this)"/>
<script>
function getWH(t){
//获取DOM属性
console.log("width="+t.width);//输出200
console.log("height="+t.height);//输出300
//操作CSS样式
console.log("styleWidth="+t.style.width);//结果为空
console.log("styleHeight="+t.style.height);//结果为空
} 结论:若未在样式中显式定义宽高,则style.width和style.height始终为空。
3)放大图片:
此处利用IE私有属性机制,旨在防止图片放大时出现严重失真。
图片放大实现与局限性
示例代码如下:
<img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt="MM" title="MM(实际大小200*300)" onclick="getWH(this)" width="200" height="300"/>
<script>
function getWH(t){
t.width *= 2;
t.height *= 2;
//每次点击事件触发,宽高数值放大一倍
}
</script> 4)在FF与谷歌中,我们还可以用naturalWidth与naturalHeight取得图片的原大小!
示例代码如下:
<img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt="MM" title="MM(实际大小200*300)" onclick="getWH(this)" width="200" height="300"/>
<script>
function getWH(t){
console.log("width="+t.naturalWidth);
console.log("height="+t.naturalHeight);
t.width = t.naturalWidth * 2;
t.height = t.naturalHeight * 2;
}
</script> naturalWidth和naturalHeight仅为只读属性,无法用于动态设置图片尺寸,故不能实现持续放大效果。

作者最新文章
JavaScript异步发送HTTP请求时怎么优雅地处理错误
2026-11-05 17:10:44
5款主流JS在线运行工具对比:CodePen、JSFiddle与StackBlitz怎么选
2026-11-05 17:04:04
JavaScript入门书籍避坑:这些书不适合初学者
2026-11-05 16:31:15
JS使用Math.round实现保留两位小数的原理与代码
2026-11-05 15:35:55
JavaScript 原生 Date 对象怎么实现日期加减
2026-11-05 14:30:00
