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


Posted in Javascript onSeptember 28, 2014

1、什么时候需要获取图片真实的宽度和高度

在做pc网页的时候,有时候会考虑按照插入的图片的尺寸来判断图片是横图还是竖图。然后判断过后给予不同的展示方式!

另外一种就是在手机页面上,在新闻页插入的图片往往都是按照图片的原尺寸来展示,如果手机屏幕太小,太大的图就会超出去!这时候有两种解决办法

1)给所有的图片加上这样的样式

1

.news img{margin:5px auto; display:block;width:100%; height:auto;}

但是这种方式有另外一个问题就是,如果插入的图片本身就很小的话,也会被直接拉伸成100%显示,显然这是不合理的!那么这里就介绍另外一种方式就是通过js动态展示图片的尺寸!

2)js动态获取图片的尺寸

jquery方式

代码如下

var _w = parseInt($(window).width());//获取浏览器的宽度
$(".new_mess_c img").each(function(i){
var img = $(this);
var realWidth;//真实的宽度
var realHeight;//真实的高度
//这里做下说明,$("<img/>")这里是创建一个临时的img标签,类似js创建一个new Image()对象!
$("<img/>").attr("src", $(img).attr("src")).load(function() {
/*
如果要获取图片的真实的宽度和高度有三点必须注意
1、需要创建一个image对象:如这里的$("<img/>")
2、指定图片的src路径
3、一定要在图片加载完成后执行如.load()函数里执行
*/
realWidth = this.width;
realHeight = this.height;
//如果真实的宽度大于浏览器的宽度就按照100%显示
if(realWidth>=_w){
$(img).css("width","100%").css("height","auto");
}
else{//如果小于浏览器的宽度按照原尺寸显示
$(img).css("width",realWidth+'px').css("height",realHeight+'px');
}
});
});

js方式

代码如下

window.onload = function(){
function getViewSize() {//获取浏览器视口的宽高
return {
"w": window['innerWidth'] || document.documentElement.clientWidth,
(3water.com) "h": window['innerHeight'] || document.documentElement.clientHeight
}
}
function getFullSize() {//获取浏览器最大的宽度
var w = Math.max(document.documentElement.clientWidth, document.body.clientWidth) +
Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
var h = Math.max(document.documentElement.clientHeight, document.body.clientHeight) +
Math.max(document.documentElement.scrollTop, document.body.scrollTop);
w = Math.max(document.documentElement.scrollWidth, w);
h = Math.max(document.documentElement.scrollHeight, h);
return {
"w": w,
"h": h
};
}
var _sv_w = getViewSize()["w"];
var _sf_w = getFullSize()["w"];
var _w = _sv_w;//这里用视口的宽度,具体视情况
var Imgarray = document.getElementsByTagName("img");
var realWidth;//真实的宽度
var realHeight;//真实的高度
for(var i =0;i<Imgarray.length;i++){
var imgtemp = new Image();//创建一个image对象
imgtemp.src = Imgarray[i].src;
imgtemp.index = i;//指定一个检索值,用于确定是哪张图
imgtemp.onload = function(){//图片加载完成后执行
var _stemp = this;//将当前指针复制给新的变量,不然会导致变量共用
realWidth = this.width;
realHeight = this.height;
if(realWidth >=_w )
{
Imgarray[_stemp.index].style.width = _w+'px';
Imgarray[_stemp.index].style.height = 'auto';
}
else{
Imgarray[_stemp.index].style.width = realWidth+'px';
Imgarray[_stemp.index].style.height = realHeight+'px';
}
}
}
}

上面两种方法中jquery比较简单,实现起来比较快,第二种比较复杂些,但是执行起来比jquery要快!

Javascript 相关文章推荐
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
Feb 24 Javascript
封装html的select标签的js操作实例
Jul 02 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
js实现局部页面打印预览原理及示例代码
Jul 03 Javascript
Javascript核心读书有感之表达式和运算符
Feb 11 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
Mar 26 Javascript
Javascript中的return作用及javascript return关键字用法详解
Nov 05 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
Aug 08 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
详解基于vue的移动web app页面缓存解决方案
Aug 03 Javascript
JavaScript判断日期时间差的实例代码
Mar 01 Javascript
JS实现页面炫酷的时钟特效示例
Aug 14 Javascript
一个jquery实现的不错的多行文字图片滚动效果
Sep 28 #Javascript
IE中getElementsByName()对有些元素无效的解决方案
Sep 28 #Javascript
js propertychange和oninput事件
Sep 28 #Javascript
javascript检测是否联网的实现代码
Sep 28 #Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 #Javascript
Node.js中使用mongoskin操作mongoDB实例
Sep 28 #Javascript
js使用for循环与innerHTML获取选中tr下td值
Sep 26 #Javascript
You might like
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python pymongo模块用法示例
2018/03/31 Python
python远程邮件控制电脑升级版
2019/05/23 Python
python面向对象 反射原理解析
2019/08/12 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
python识别验证码图片实例详解
2020/02/17 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
python利用opencv保存、播放视频
2020/11/02 Python
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
电子商务应届生求职信
2013/11/16 职场文书
酒鬼酒广告词
2014/03/21 职场文书
委托书范文
2014/04/02 职场文书
外贸业务员求职信
2014/06/16 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
追悼会答谢词
2015/01/05 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
python b站视频下载的五种版本
2021/05/27 Python
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS