用jquery等比例控制图片宽高的具体实现


Posted in Javascript onJanuary 28, 2014

核心代码:

$(function() { 
$(".dvcontent img").each(function() { 
var maxwidth = 520; 
if ($(this).width() > maxwidth) { 
var oldwidth = $(this).width(); 
var oldheight = $(this).height(); 
var newheight = maxwidth/oldwidth*oldheight; 
$(this).css({width:maxwidth+"px",height:newheight+"px",cursor:"pointer"}); 
$(this).attr("title","点击查看原图"); 
$(this).click(function(){window.open($(this).attr("src"))}); 
} 
}); 
});

如果上面的代码不能执行,可以使用下面的代码:

$(window).load(function() {
	$(".dvcontent img").each(function() { 
	var maxwidth = 600; 
	if ($(this).width() > maxwidth) { 
	var oldwidth = $(this).width(); 
	var oldheight = $(this).height(); 
	var newheight = maxwidth/oldwidth*oldheight; 
	$(this).css({width:maxwidth+"px",height:newheight+"px",cursor:"pointer"}); 
	$(this).attr("title","点击查看原图"); 
	$(this).click(function(){window.open($(this).attr("src"))}); 
	} 
	}); 
});

通过css还有一种方法兼容IE6能让图片在超过规定的宽度时自动按比例缩小,但该写法不符合W3C标准。代码如下:

.cate img{
    max-width: 600px; 
    height:auto; 
    width:expression(this.width > 600 ? "600px" : this.width);
 }

所以在做到尽量兼容IE和其他浏览器以及符合W3C的标准下就通过js来控制图片的宽度了,下面使用jquery控制图片显示时的最大宽度,主代码如下:

$(window).load(function() {
    $(".cate img").each(function() {
        var maxwidth = 600;
        if ($(this).width() > maxwidth) {
            $(this).width(maxwidth);
        }
    });
});

代码很简单,就是cate样式下的所以img的最大宽度只能为600px。.each(function(){......}),each在这里是对指定的图片集合对象逐一调用下面的方法。这种jquery方法在IE6及以上浏览器和chrome及Firefox上都能实现控制图片显示时的最大宽度。

Javascript 相关文章推荐
jquery 插件开发备注
Aug 27 Javascript
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 Javascript
javascript获取xml节点的最大值(实现代码)
Dec 11 Javascript
javascript常见数据验证插件大全
Aug 03 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
Aug 05 Javascript
Bootstrap模态窗口源码解析
Feb 08 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
Feb 14 Javascript
node.js连接MongoDB数据库的2种方法教程
May 17 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
Nov 02 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
Apr 15 Javascript
vue+element实现表单校验功能
May 20 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 Javascript
jQuery实现当按下回车键时绑定点击事件
Jan 28 #Javascript
用js正确判断用户名cookie是否存在的方法
Jan 28 #Javascript
原生javascript实现无间缝滚动示例
Jan 28 #Javascript
IE、FF浏览器下修改标签透明度
Jan 28 #Javascript
纯css+js写的一个简单的tab标签页带样式
Jan 28 #Javascript
把字符串按照特定的字母顺序进行排序的js代码
Jan 28 #Javascript
js格式化金额可选是否带千分位以及保留精度
Jan 28 #Javascript
You might like
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
php检查页面是否被百度收录
2015/10/28 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
PHP里的$_GET数组介绍
2019/03/22 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
一个简单的js动画效果代码
2010/07/20 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
angularjs中判断ng-repeat是否迭代完的实例
2018/09/12 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
中英双版中文教师求职信
2013/10/27 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
嘉宾邀请函
2015/01/31 职场文书
医德医风自我评价2015
2015/03/03 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
小学教师教育随笔
2015/08/14 职场文书
2019求职信大礼包
2019/05/15 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB
利用Apache Common将java对象池化的问题
2022/06/16 Servers