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:void(0)是什么意思示例介绍
Nov 17 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
Feb 07 Javascript
jquery自定义滚动条插件示例分享
Feb 21 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
Sep 01 Javascript
再JavaScript的jQuery库中编写动画效果的指南
Aug 13 Javascript
jQuery无刷新切换主题皮肤实例讲解
Oct 21 Javascript
IE和Firefox之间在JavaScript语法上的差异
Apr 22 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
May 03 Javascript
EasyUI 结合JS导出Excel文件的实现方法
Nov 10 Javascript
JS为什么说async/await是generator的语法糖详解
Jul 11 Javascript
浅谈React中组件逻辑复用的那些事儿
May 21 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
限制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中GET变量的使用
2006/10/09 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
js 调整select 位置的函数
2008/02/21 Javascript
DHTML Slide Show script图片轮换
2008/03/03 Javascript
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
Python collections模块使用方法详解
2019/08/28 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
python openpyxl模块的使用详解
2021/02/25 Python
Chemist Warehouse官方海外旗舰店:澳洲第一连锁大药房
2017/08/25 全球购物
工商管理系学生的自我评价分享
2013/11/29 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
师德师风自查总结
2014/10/14 职场文书
2014会计年终工作总结
2014/12/20 职场文书
焦点访谈观后感
2015/06/11 职场文书
公司岗位说明书
2015/10/08 职场文书