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 相关文章推荐
[HTML/CSS/Javascript]WWTJS
Sep 25 Javascript
javascript FormatNumber函数实现方法
Dec 30 Javascript
一个JavaScript变量声明的知识点
Oct 28 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
Aug 07 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
Sep 01 Javascript
javascript字符串替换函数如何一次性全部替换掉
Oct 30 Javascript
js命名空间写法示例
Dec 18 Javascript
检查表单元素的值是否为空的实例代码
Jun 16 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
Dec 27 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
May 03 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
微信小程序之自定义组件的实现代码(附源码)
Aug 02 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写的serv-u的web申请账号的程序
2006/10/09 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
2010/07/24 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
django js实现部分页面刷新的示例代码
2018/05/28 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
canvas烟花特效锦集
2018/01/17 HTML / CSS
幼儿如何来做好自我评价
2013/11/05 职场文书
仓管岗位职责范本
2014/02/08 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
介绍信的格式
2015/01/30 职场文书
长城导游词300字
2015/01/30 职场文书
复试通知单模板
2015/04/24 职场文书
面试复试通知单
2015/04/24 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
Python数据分析之pandas读取数据
2021/06/02 Python
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python