用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 相关文章推荐
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
Mar 22 Javascript
基于jQuery的倒计时实现代码
May 30 Javascript
jquery改变disabled的boolean状态的三种方法
Dec 13 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
node.js平台下的mysql数据库配置及连接
Mar 31 Javascript
详解Webpack DLL用法以及功能
Jul 11 Javascript
js下拉菜单生成器dropMenu使用方法详解
Aug 01 Javascript
Webpack中雪碧图插件使用详解
May 25 Javascript
Vue.js 利用v-for中的index值实现隔行变色
Aug 01 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 Javascript
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
前端vue+express实现文件的上传下载示例
Feb 18 Vue.js
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
PHP完整的日历类(CLASS)
2006/11/27 PHP
php mysql数据库操作类
2008/06/04 PHP
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
jquery 弹出层实现代码
2009/10/30 Javascript
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
现如今最流行的JavaScript代码规范
2014/03/08 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
vue 注册组件的使用详解
2018/05/05 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
详解重置Django migration的常见方式
2019/02/15 Python
python 使用while写猜年龄小游戏过程解析
2019/10/07 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
机械专业应届生求职信
2013/12/12 职场文书
项目投资意向书
2014/04/01 职场文书
《云房子》教学反思
2014/04/20 职场文书
简单租房协议书范本
2014/08/20 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
工作一年自我鉴定
2019/06/20 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python