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中的数组Array定义与sort方法使用示例
Aug 29 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
Dec 22 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 Javascript
js如何准确获取当前页面url网址信息
Sep 13 Javascript
详解js中的apply与call的用法
Jul 30 Javascript
Bootstrap如何创建表单
Oct 21 Javascript
Web前端框架Angular4.0.0 正式版发布
Mar 28 Javascript
基于rem的移动端响应式适配方案(详解)
Jul 07 Javascript
jQuery简单实现对数组去重及排序操作实例
Oct 31 jQuery
使用electron制作满屏心特效的示例代码
Nov 27 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
Jan 30 Javascript
如何通过JS实现日历简单算法
Oct 14 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
德生S2000电路分析
2021/03/02 无线电
php XPath对XML文件查找及修改实现代码
2011/07/27 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
PHP图片加水印实现方法
2016/05/06 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
Python中的两个内置模块介绍
2015/04/05 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
Python如何调用外部系统命令
2019/08/07 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
Python字符串及文本模式方法详解
2020/09/10 Python
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
竞聘上岗演讲稿范文
2014/01/10 职场文书
政府采购方案
2014/06/12 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
欧元符号 €
2022/02/17 杂记
vue特效之翻牌动画
2022/04/20 Vue.js