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 相关文章推荐
为数据添加append,remove功能
Oct 03 Javascript
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
Apr 20 Javascript
JavaScript 创建对象
Jul 17 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
May 23 Javascript
For循环中分号隔开的3部分的执行顺序探讨
May 27 Javascript
javascript实现playfair和hill密码算法
Dec 07 Javascript
jquery动态改变div宽度和高度
Feb 09 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
js拖动滑块和点击水波纹效果实例代码
Oct 16 Javascript
详解如何为你的angular app构建一个第三方库
Dec 07 Javascript
微信小程序实现日历效果
Dec 28 Javascript
Vue实现数据请求拦截
Oct 23 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中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
php读取mysql的简单实例
2014/01/15 PHP
PHP小教程之实现链表
2014/06/09 PHP
PHP扩展开发入门教程
2015/02/26 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
JS 事件机制完整示例分析
2020/01/15 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
员工评语大全
2014/01/19 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python
Nginx动静分离配置实现与说明
2022/04/07 Servers