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 相关文章推荐
javascript中运用闭包和自执行函数解决大量的全局变量问题
Dec 30 Javascript
jquery的ajax请求全面了解
Mar 20 Javascript
node.js中的fs.chmodSync方法使用说明
Dec 18 Javascript
利用Angularjs实现幻灯片效果
Sep 07 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
Sep 24 Javascript
详解vue+vueRouter+webpack的简单实例
Jun 17 Javascript
Three.js实现浏览器变动时进行自适应的方法
Sep 26 Javascript
JS实现访问DOM对象指定节点的方法示例
Apr 04 Javascript
在react中使用vuex的示例代码
Jul 30 Javascript
详解Vue路由自动注入实践
Apr 17 Javascript
react-router-dom 嵌套路由的实现
May 02 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
May 15 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.0 模板中函数的使用
2012/11/13 PHP
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
php数据序列化测试实例详解
2017/08/12 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
简单介绍Python中的try和finally和with方法
2015/05/05 Python
python web基础之加载静态文件实例
2018/03/20 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
利用python求积分的实例
2019/07/03 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
大学生护理专业自荐信
2013/10/03 职场文书
上级检查欢迎词
2014/01/18 职场文书
奠基仪式主持词
2014/03/20 职场文书
小学课外阅读总结
2014/07/09 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书