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 相关文章推荐
基于逻辑运算的简单权限系统(实现) JS 版
Mar 24 Javascript
jquery使用jxl插件导出excel示例
Apr 14 Javascript
推荐一款jQuery插件模板
Jan 09 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
Mar 01 Javascript
JavaScipt中栈的实现方法
Feb 17 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
Nov 30 Javascript
jQuery居中元素scrollleft计算方法示例
Jan 16 Javascript
用原生js做单页应用
Jan 17 Javascript
fullPage.js和CSS3实现全屏滚动效果
May 05 Javascript
webpack4 升级迁移的实现
Sep 12 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
Dec 01 Javascript
详解Java中String JSONObject JSONArray List转换
Nov 13 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求小于1000的所有水仙花数的代码
2012/01/10 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
教你如何使用php session
2013/10/28 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
jQuery选择器之基本选择器用法实例分析
2019/02/19 jQuery
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
微信小程序项目总结之记账小程序功能的实现(包括后端)
2019/08/20 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
Python的Django框架中的数据库配置指南
2015/07/17 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
Django配置跨域并开发测试接口
2020/11/04 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
九州传奇上机题
2014/07/10 面试题
学生实习自我鉴定
2013/10/11 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书