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 相关文章推荐
js版本A*寻路算法
Dec 22 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
Apr 15 Javascript
prettify 代码高亮着色器google出品
Dec 28 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
Aug 15 Javascript
如何让div span等元素能响应键盘事件操作指南
Nov 13 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
JavaScript打印网页指定区域的例子
May 03 Javascript
js图片实时加载提供网页打开速度
Sep 11 Javascript
JavaScript中的console.dir()函数介绍
Dec 29 Javascript
JS实现让访问者自助选择网页文字颜色的方法
Feb 24 Javascript
一道JS前端闭包面试题解析
Dec 25 Javascript
vue仿ios列表左划删除
Sep 26 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
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
关于js类的定义
2011/06/28 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
jquery做个日期选择适用于手机端示例
2017/01/10 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
Python 深入理解yield
2008/09/06 Python
centos系统升级python 2.7.3
2014/07/03 Python
Django Admin实现上传图片校验功能
2016/03/06 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
生产厂厂长岗位职责
2013/12/25 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
投诉信回复范文
2015/07/03 职场文书