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 相关文章推荐
javascript SocialHistory 检查访问者是否访问过某站点
Aug 02 Javascript
JavaScript版DateAdd和DateDiff函数代码
Mar 01 Javascript
javascript分页代码(当前页码居中)
Sep 20 Javascript
jQuery中实现动画效果的基本操作介绍
Apr 16 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
Jun 08 Javascript
仅30行代码实现Javascript中的MVC
Feb 15 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
JS查找数组中重复元素的方法详解
Jun 14 Javascript
在React 组件中使用Echarts的示例代码
Nov 08 Javascript
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
JavaScript中document.activeELement焦点元素介绍
Nov 27 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(3) php 函数
2010/02/15 PHP
PHP开发需要注意的安全问题
2010/09/01 PHP
PHP URL路由类实例
2013/11/12 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
淘宝搜索框效果实现分析
2011/03/05 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
Jquery Mobile 自定义按钮图标
2015/11/18 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
vue中render函数的使用详解
2018/10/12 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
python os.listdir()乱码解决方案
2021/01/31 Python
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
2014年党员自我评议(5篇)
2014/09/12 职场文书
政府四风问题整改措施
2014/10/04 职场文书
应聘教师求职信范文
2015/03/20 职场文书
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
如何利用Python实现一个论文降重工具
2021/07/09 Python