Javscript/jquery 获取图片宽高代码

一、简陋的获取图片方式

 代码如下 复制代码

// 图片地址 后面加时间戳是为了避免缓存
var img_url = '/13643608813441.jpg?'+Date.parse(new Date());
// 创建对象
var img = new Image();
// 改变图片的src
img.src = img_url;
// 打印
alert('width:'+img.width+',height:'+img.height);

执行:

宽高都是0的这个结果很正常,因为图片的相关数据都没有被加载前它的宽高默认就是0
于是可以这么优化!

二、onload后在打印

 代码如下 复制代码
// 图片地址 后面加时间戳是为了避免缓存
var img_url = '/13643608813441.jpg?'+Date.parse(new Date());
// 创建对象
var img = new Image();
// 改变图片的src
img.src = img_url;
// 加载完成执行
img.onload = function(){
// 打印
alert('width:'+img.width+',height:'+img.height);
};

执行:

通过onload就能获取到图片的宽高了。但onload大一点的图通常都比较慢,不实用,但只要图片被浏览器缓存,那么图片加载几乎就不用等待即可触发onload,我们要的是占位符。所以有些人通过缓存获取也可以这么写。

三、通过complete与onload一起混合使用

为了测试缓存效果,注意以下测试图片的url都不加时间戳

 代码如下 复制代码

// 图片地址
var img_url = '/13643608813441.jpg';
// 创建对象
var img = new Image();
// 改变图片的src
img.src = img_url;
// 判断是否有缓存
if(img.complete){
// 打印
alert('from:complete : width:'+img.width+',height:'+img.height);
}else{
// 加载完成执行
img.onload = function(){
// 打印
alert('from:onload : width:'+img.width+',height:'+img.height);
};
}

jquery方式获取

前提是图片路径是正确的...

 代码如下 复制代码

var img = new Image();
img.src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/baidu_sylogo1.gif;
img.onload = function(){
alert(this.width);
alert(this.height);
this.onload=null;
}

通过$("#img").attr("width");这种方式获取的值,有时候是不正确的

jquery还有另一种办法

 代码如下 复制代码

var pic_real_width, pic_real_height;
$("<img/>") // Make in memory copy of image to avoid css issues
    .attr("src", $(img).attr("src"))
    .load(function() {
        pic_real_width = this.width;   // Note: $(this).width() will not
        pic_real_height = this.height; // work for in memory images.
});

看一个等比例缩放

 代码如下 复制代码

<script type="text/javascript">
function changeImg(objImg)
{
    var most = 690;        //设置最大宽度
    if(objImg.width > most)
    {
        var scaling = 1-(objImg.width-most)/objImg.width;   
        //计算缩小比例
        objImg.width = objImg.width*scaling;
        objImg.height = objImg.height;            //img元素没有设置高度时将自动等比例缩小
       
        //objImg.height = objImg.height*scaling;    //img元素设置高度时需进行等比例缩小
    }
   
}
</script>

HTML调用部分

<img src="" onload="changeImg(this);" />

时间: 2024-09-23 19:26:05

Javscript/jquery 获取图片宽高代码的相关文章

javascript获取图片宽高的例子总结

  一.简陋的获取图片方式  代码如下   // 图片地址 后面加时间戳是为了避免缓存     var img_url = '/static/upload/2013/13643608813441.jpg?'+Date.parse(new Date());    // 创建对象     var img = new Image();     // 改变图片的src     img.src = img_url;     // 打印     alert('width:'+img.width+',heig

js获取图片宽高的方法_javascript技巧

本文分享多种js获取图片宽高的方法,并且通过实例进行分析,希望大家从中有所收获. 一.简陋的获取图片方式 // 图片地址 后面加时间戳是为了避免缓存 var img_url = 'upload/2013/13643608813441.jpg?'+Date.parse(new Date()); // 创建对象 var img = new Image(); // 改变图片的src img.src = img_url; // 打印 alert('width:'+img.width+',height:'

php getimagesize函数获取图片宽高

getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 IMG 标记中的 height/width 文本字符串.  代码如下 复制代码 <?php/* 1.jpg为你想获得其尺寸的图片 */ $arr = getimagesize("1.jpg"); /**  * 这里$arr为一个数

用jquery等比例控制图片宽高的具体实现_jquery

核心代码: $(function() { $(".dvcontent img").each(function() { var maxwidth = 520; if ($(this).width() > maxwidth) { var oldwidth = $(this).width(); var oldheight = $(this).height(); var newheight = maxwidth/oldwidth*oldheight; $(this).css({width

js兼容火狐获取图片宽和高的方法

  本文实例讲述了js兼容火狐获取图片宽和高的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <!doctype html> <html> <head> <meta content="text/html; charset=GBK" http-equiv="Content-Type" />

js兼容火狐获取图片宽和高的方法_javascript技巧

本文实例讲述了js兼容火狐获取图片宽和高的方法.分享给大家供大家参考.具体实现方法如下: <!doctype html> <html> <head> <meta content="text/html; charset=GBK" http-equiv="Content-Type" /> <title>获取Image 宽高</title> </head> <body> <

如何通过js和jquery获取图片真实的宽度和高度

原文:如何通过js和jquery获取图片真实的宽度和高度 1.什么时候需要获取图片真实的宽度和高度       在做pc网页的时候,有时候会考虑按照插入的图片的尺寸来判断图片是横图还是竖图.然后判断过后给予不同的展示方式!       另外一种就是在手机页面上,在新闻页插入的图片往往都是按照图片的原尺寸来展示,如果手机屏幕太小,太大的图就会超出去!这时候有两种解决办法 1)给所有的图片加上这样的样式 .news img{margin:5px auto; display:block;width:1

javascript获取网页宽高方法汇总_javascript技巧

document.body.clientWidth - 网页可见区域宽 document.body.clientHeight - 网页可见区域高 document.body.offsetWidth - 网页可见区域宽,包括边线和滚动条的宽 document.body.offsetHeight - 网页可见区域高,包括边线和滚动条的高[FF,chrom下是整个页面高,IE opera 下正常] document.body.scrollWidth - 网页总宽 document.body.scrol

Android编程获取屏幕宽高与获取控件宽高的方法_Android

本文实例讲述了Android编程获取屏幕宽高与获取控件宽高的方法.分享给大家供大家参考,具体如下: 获取屏幕宽高 // 获取屏幕宽高(方法1) int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480px) int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); // 屏幕高(像素,如:800p) L