频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 虚拟主机  域名注册     常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> 网站设计相关 -> IE6模拟max-width对图片动态缩放

IE6模拟max-width对图片动态缩放

作者:LuLi  来源:SimpleLife  发布时间:2007-10-18 9:27:15  发布人:圈圈

减小字体 增大字体

在web2.0的站中用户互动性是很强的,例如用户留言我们可能放开img标签,允许用户外链其他站点的图片,那么我们就需要解决图片尺寸过大所带来的页面布局问题。在支持max-width属性的浏览器中,这个很容易实现,我们只需要给特定的img定义全局的样式,不定义高宽,通过限定max-width就可以保证版面不受外链大图的干扰了。遗憾的是IE6不支持这个属性,很多时候我们采用overflow的hidden来保证我们的版面不受干扰,但这个解决方式并不是十分完美,没有兼顾图片的比例问题,对用户的参与积极性有一定的影响。这里介绍我的另外一种实现方式,用JS来动态缩放图片。

 核心的JS代码如下:
function resizeImage(img,width){
var image=new Image();
image.src=img.src;
var temp = image.width;
//var rate = image.width/image.height;
img.width = temp = (temp>width)?width:temp;
//img.height = Math.round(temp/rate);
img.style.display = "inline";
}

function doResize(){
if($.browser.version==6&&$.browser.msie) $("img").each(function(){resizeImage(this,100)});
}

window.onload = doResize;

  实现的原理很简单,主要是resizeImage函数通过判断,然后修改了img.width属性。然后就是考虑效率优化上的一些问题了,曾经看到有人直接在img标签的onload属性里调用动态修改尺寸的做法,这显然是极大消耗的,不可取;利用CSS中的行为-expression也存在争议,可能造成浏览器死掉,我个人很少用这个方法。

  这里我引用了Jquery框架,当然你可以使用其他类库或者自己来的库。目的就是在DOM元素返回以后统一进行函数处理。在此之前我对浏览器做了判断,当浏览器是ie6时才执行缩放操作,对于支持max-width属性的浏览器,我用CSS来完成对图片的限定。

  考虑到外链图可能很大,如果网速慢的时候我们的脚本把图片读入到内存也需要时间,因此我在页面加载时用CSS将图片先隐藏了,当缩放完成的时候再用JS将图片显示,所以这个CSS里用hack手段来针对ie6做隐藏处理了。
img{
display:inline !important;
display:none;
max-width:180px;
}


  还有一个小的优化就是尽可能不要定义图片的高宽,从我的示例中你可以看出,如果不定义高宽,那么JS只需要修改宽度,那么高度会自适应,如果定义了,那么JS需要对高宽都做等比缩放才能达到我们要的效果,这里额外增添了JS的消耗。对于用户输入带进来的高宽,那么服务端完全有能力把这个属性给过滤掉。能不定义高度,最好不要定义,能用CSS实现的就不要用JS实现,尽可能降低JS造成的消耗。

将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 注册码大全三
· 让你轻松架设FTP服务器1..
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 风景图片8
· 让你轻松架设FTP服务器5..
· 注册码大全九
· 50MB免费空间 FTP PHP M..
关注此文读者还看过
· 验证email地址是否合法完..
· Dreamweaver3 图层应用技..
· 光盘效果的制作
· Photoshop 表现技法之酒..
· 三、第一个Servlet
· 微软重返原创娱乐 MSN部..
· 在ASP中利用“正则表达式..
· VBScript与JScript谁怕谁..
· Windows 2000活动目录详..
· 未来五年必备的10大网络..
· ASP+与ASP有哪些区别(..
· 互联网页面浏览限制实现..
· php 发送带附件的邮件
· 用Flash制作神奇的弹性导..
· JSP语法介绍
· ASP讲座之八:ASP与数据..
相关文章
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
免责申明:中国建站之家(www.jz123.cn)上的所有提供下载的软件和资源
均来源于网络,为软件或程序作者提供和网友推荐收集整理而来,仅供学习
和研究使用。如有侵犯你的版权,请立即联系我们,本站将在3个工作日内删除。
粤ICP备05092265号