文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网站建设Div+CssIE6模拟max-width对图片动态缩放
精品推荐
特别推荐
·初学者来看:学习网页技术CSS怎么入门?
·CSS网页设计非常有用技巧
·DIV+CSS的命名规则有利于网站优化
·多个CSS样式表争夺特定选择符的控制权
·学习CSS制作网页总结的一些经验技巧
·CSS初学者应该保持的一种心态
·CSS常见问题和技巧总结
·DIV+CSS常见错误汇总
·设计中常用的十个CSS技巧
·网站配色,CSS主色调配色方案
热点TOP10
·背景图片居中显示(HTML,CSS技巧)
·CSS实例:让页脚保持在未满屏页面的底部
·CSS大师Eric采访实录
·CSS隐藏网页文字的几种常用方法
·国外译文:网页设计如何使用CSS的选择器模式?
·CSS注释、命名、继承性、样式排序等CSS技巧的小结
·CSS条状图表形式的实现方法
·CSS实现带背景图片的文字链接的方法
·CSS和XHTML经验:类目之间的竖线问题引发的讨论
·LI标签中内容超过长度后以省略号显示的方法

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

日期:2007年10月18日 作者: 查看:[大字体 中字体 小字体]


  在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造成的消耗。

(出处:清风网络学院






上一篇:熟悉SQL Server存储过程

下一篇:HTML:对话框插件thickbox使用技巧

相关文章:
·QQ空间黑色背景的素材图片
·水晶图片制作方法
·模拟城市4秘籍
·QQ上用来吓人的图片
·花草世界之傲雪梅花图片欣赏
·QQ空间黑色背景的素材图片(2)
·Flash 图片轮换效果
·建国以来的全套人民币图片
·推荐:漂亮的手机上使用的墙纸图片分享下载
·用FLASH遮罩效果做图片切换效果
相关软件:
·模拟城市3000(Sim City 3000)简体中文版
·NDS《逆转裁判4 完美汉化简体中文版》模拟器
·整形模拟软件_非常face V1.0
·《铁拳5》模拟器
·Google Earth 动态卫星地图 汉化版 带我们进入间谍时代 能看见你家院子
·模拟人生 2
·《拳皇97》加强版 风云再起 模拟器
·周恩来总理经典图片集
·枪战类街机《高级战争2金手指》模拟器
·图片欣赏-《大众摄影》四十年经典作品精选

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot