jQuery实现等比例缩放大图片让大图片自适应页面布局


Posted in Javascript onOctober 16, 2013

在布局页面时,有时会遇到大图片将页面容器“撑破”的情况,尤其是加载外链图片(通常是通过采集的外站的图片)。那么本文将为您讲述使用jQuery如何按比例缩放大图片,让大图片自适应页面布局。

通常我们处理缩略图是使用后台代码(PHP、.net、Java等)根据大图片生成一定尺寸的缩略图,来供前台页面调用,当然也有使用前台javascript脚本将加载后的大图强行缩放,变成所谓的缩略图,这种方法不可取。但是,针对网站内容页,如本站文章详情页,如果需要加载一张很大的图片时,为了防止“撑破”布局,我们使用jQuery来等比例缩放图片。我们分两种情况来讲述:

1.已知图片尺寸

<div id="demo1"> 
<img src="a.jpg" width="800" height="300" alt="图片"> 
</div>

当页面加载的图片中含有属性width和height值,则可以使用几句简单的jQuery代码实现等比例缩放。
$(function(){ 
var w = $("#demo1").width();//容器宽度 
$("#demo1 img").each(function(){//如果有很多图片,我们可以使用each()遍历 
var img_w = $(this).width();//图片宽度 
var img_h = $(this).height();//图片高度 
if(img_w>w){//如果图片宽度超出容器宽度--要撑破了 
var height = (w*img_h)/img_w; //高度等比缩放 
$(this).css({"width":w,"height":height});//设置缩放后的宽度和高度 
} 
}); 
});

2.未知图片尺寸

当页面加载的图片尺寸未知的情况下,上述代码则不能进行有效的缩放,这种情况多出现在采集的外部链接图片。

<div id="demo2"> 
<img src="a.jpg" alt="图片"> 
</div>

所幸的是,有好心朋友已经写出来专门的插件来处理,而且跨浏览器,解决了前端朋友们的一大难题。

下面隆重介绍下autoIMG。

autoIMG可以快速对文章图片进行尺寸自适应,它利用浏览器获取图片文件头尺寸数据,无需等待图片加载完成。

autoIMG兼容:Chrome | Firefox | Sifari | Opera | IE6 | IE7 | IE8 | ...

调用autoIMG插件方法相当简单:

$(function(){ 
$("#demo2").autoIMG(); 
});

autoIMG实例下载
Javascript 相关文章推荐
filemanage功能中用到的common.js
Apr 08 Javascript
表单元素事件 (Form Element Events)
Jul 17 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
Jun 24 Javascript
node.js开机自启动脚本文件
Dec 24 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
Mar 12 Javascript
node.js插件nodeclipse安装图文教程
Oct 19 Javascript
Js+Ajax,Get和Post在使用上的区别小结
Jun 08 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
Dec 23 Javascript
boostrapTable的refresh和refreshOptions区别浅析
Jan 22 Javascript
vue中使用element组件时事件想要传递其他参数的问题
Sep 18 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
Sep 10 Javascript
使用JS前端技术实现静态图片局部流动效果
Aug 05 Javascript
限制textbox或textarea输入字符长度的JS代码
Oct 16 #Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
Oct 15 #Javascript
纯Javascript实现Windows 8 Metro风格实现
Oct 15 #Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
Oct 15 #Javascript
Javascript 实现的数独解题算法网页实例
Oct 15 #Javascript
高效的获取当前元素是父元素的第几个子元素
Oct 15 #Javascript
JS 实现点击a标签的时候让其背景更换
Oct 15 #Javascript
You might like
php中创建和调用webservice接口示例
2014/07/25 PHP
php实现获取文件mime类型的方法
2015/02/11 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
非常好的js代码
2006/06/27 Javascript
JavaScript 应用类库代码
2008/06/02 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
python剪切视频与合并视频的实现
2020/03/03 Python
Python截图并保存的具体实例
2021/01/14 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
简短证婚人证婚词
2014/01/09 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
纠风工作实施方案
2014/03/15 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
Redis实战高并发之扣减库存项目
2022/04/14 Redis