JavaScript获取图片真实大小代码实例


Posted in Javascript onSeptember 24, 2014

网页页面上的图片尺寸似乎都千篇一律。我们最常见到的带有多图的文章页面中,图的大小通常是和页面的宽度一致,这样看起来,页面就是一个直筒形,这样的布局看多了就会觉得很单调。之所以形成这样的局面,我想很大程度上是因为老式浏览器的限制。但随着现代浏览器(火狐/谷歌/IE11)的普及,浏览器对页面设计的限制越来越少,Web程序员的想象能力能够得到极大的发挥。

比如,冷知识:你知道每个视窗都有的 [x] 是怎么来的吗?这篇文章中,很多图片超出了文本宽度的限制,给人一种参差错落的感觉,同时,让大图片以其真实的尺寸展示,给人以更震撼的感觉。

但从技术上,我们可以轻松的用文本的最大宽度限制图片,让它们都保持一个宽度,而不按文本的宽度时,我们就需要每个图片的自己的尺寸。我们可以在服务端编辑时声明图片的原始尺寸。而一种更灵活的方式是通过在页面上放一段js来动态的获取图片的原始大小尺寸,动态改变图片的显示大小。这样即能兼容老的也文本最大宽度的方式,还可以在需要的时候让图片呈现出其原始的大小。

如何用JavaScript在浏览器端获取图片的原始尺寸大小?

var img = $(“#img_id”); // Get my img elem

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.

});

Webkit浏览器(谷歌浏览器等)是在图片的loaded事件之后才能获取高度和宽度值。所以,你不能使用timeout函数延时等待,最好的方法是使用图片的onload事件。

为了避免CSS对图片大小尺寸的影响,上面的代码将图片拷贝到内存中进行计算。

如果你的页面是老式页面,你可以按需把这段代码嵌入页面底部,它不需要你修改原有页面。

Javascript 相关文章推荐
解析Javascript中中括号“[]”的多义性
Dec 03 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
Mar 18 Javascript
director.js实现前端路由使用实例
Feb 03 Javascript
jQuery插件jPaginate实现无刷新分页
May 04 Javascript
jQuery实现点击小图显示大图代码分享
Aug 25 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
Sep 20 Javascript
原生js实现图片轮播特效
Dec 18 Javascript
JavaScript编写九九乘法表(两种任选)
Feb 04 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
Dec 09 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
Dec 13 Javascript
Vue实现页面添加水印功能
Nov 09 Javascript
原生js+ajax分页组件
Jan 30 Javascript
再探JavaScript作用域
Sep 24 #Javascript
深入理解javascript原型链和继承
Sep 23 #Javascript
深入理解javascript构造函数和原型对象
Sep 23 #Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
Sep 23 #Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
Sep 23 #Javascript
IE6 hack for js 集锦
Sep 23 #Javascript
深入理解javascript作用域和闭包
Sep 23 #Javascript
You might like
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
JS跨域代码片段
2012/08/30 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
python+pandas生成指定日期和重采样的方法
2018/04/11 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
Python socket 套接字实现通信详解
2019/08/27 Python
解决python 文本过滤和清理问题
2019/08/28 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
python文件及目录操作代码汇总
2020/07/08 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
python3判断IP地址的方法
2021/03/04 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
初中生评语大全
2014/04/24 职场文书
月考总结与反思
2015/10/22 职场文书
送给客户微信问候语!
2019/07/04 职场文书
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers