[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结


Posted in Javascript onMarch 12, 2007

最近做一个图片的自动缩小效果,发现一直用的js,竟然在firefox下无法正常啊,导致页面变形.所以自己写了个兼容性一般的代码,大家可以来讨论下
原来我用的是从pjblog上的

//查找网页内宽度太大的图片进行缩放以及PNG纠正 
 function ReImgSize(){ 
  for (i=0;i<document.images.length;i++) 
   { 
   if (document.all){ 
    if (document.images[i].width>550) 
     { 
       document.images[i].width="550"  //没有高,明显会让图片变形
       try{ 
           document.images[i].outerHTML='<a href="'+document.images[i].src+'" target="_blank" title="在新窗口打开图片">'+document.images[i].outerHTML+'</a>' 
           }catch(e){} 
       } 
   } 
  else{ 
    if (document.images[i].width>400) { 
//宽和高都没有,更是让firefox下图片撑大图片
      document.images[i].title="在新窗口打开图片" 
      document.images[i].style.cursor="pointer" 
      document.images[i].onclick=function(e){window.open(this.src)} 
    } 
  } 
  } 
 }

非常好用的代码可不足的地方就是firefox下大图会变形,而且无法控制区域的图片,如果想要的大图,也被变成小图了
我自己写了个,
function $(objectId) {  
     if(document.getElementById && document.getElementById(objectId)) {  
    // W3C DOM  
       return document.getElementById(objectId);  
     }   
     else if (document.all && document.all(objectId)) {  
    // MSIE 4 DOM  
       return document.all(objectId);  
     }   
     else if (document.layers && document.layers[objectId]) {  
    // NN 4 DOM.. note: this won't find nested layers  
       return document.layers[objectId];  
     }   
     else {  
       return false;  
    }  
}
function dxy_ReImgSize(){ 
var box=$("dxy_content"); 
var imgall=box.getElementsByTagName("img") 
  for (i=0;i<imgall.length;i++) 
   { 
    if (imgall[i].width>500) 
     { 
    var oWidth=imgall[i].width; 
    var oHeight=imgall[i].height; 
    imgall[i].width="500"; 
    imgall[i].height=oHeight*500/oWidth; 
       } 
    } 
}

可又发现,如果低浏览器,不支持getElementsByTagName,就没的玩了,好处是可以控制区域.
最后没办法了,就先弄个,暂时的解决办法
function ReImgSize(){ 
  for (i=0;i<document.images.length;i++) 
   { 
   if (document.all){ 
    if (document.images[i].width>500) 
     { 
       var oWidth=document.images[i].width; 
       var oHeight=document.images[i].height; 
       document.images[i].width="500"; 
       document.images[i].height=oHeight*500/oWidth; 
       document.images[i].outerHTML='<a href="'+document.images[i].src+'" target="_blank" title="在新窗口打开图片">'+document.images[i].outerHTML+'</a>' 
       } 
   } 
  else{ 
    if (document.images[i].width>500) { 
       var oWidth=document.images[i].width; 
       var oHeight=document.images[i].height; 
       document.images[i].width="500"; 
       document.images[i].height=oHeight*500/oWidth; 
      document.images[i].title="在新窗口打开图片"; 
      document.images[i].style.cursor="pointer" 
      document.images[i].onclick=function(e){window.open(this.src)} 
    } 
  } 
  } 
 }

注意我增加了
var oWidth=document.images[i].width;  
       var oHeight=document.images[i].height;  
       document.images[i].width="500";  
       document.images[i].height=oHeight*500/oWidth; 

如果大家发现了什么更好的方法,贴出来啊
3water.com 三水点靠木 原创,转载请写明出处
Javascript 相关文章推荐
对YUI扩展的Gird组件 Part-2
Mar 10 Javascript
js文字滚动停顿效果代码
Jun 28 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
Feb 16 Javascript
分享27个jQuery 表单插件集合推荐
Apr 25 Javascript
javascript自动改变文字大小和颜色的效果的小例子
Aug 02 Javascript
JS查找英文文章中出现频率最高的单词
Mar 20 Javascript
node.js学习笔记之koa框架和简单爬虫练习
Dec 13 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 Javascript
d3.js实现图形缩放平移
Dec 19 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
Feb 02 Javascript
vue渲染方式render和template的区别
Jun 05 Javascript
JavaScript实现登录窗体
Jun 22 Javascript
网页中实现浏览器的最大,最小化和关闭按钮
Mar 12 #Javascript
如何在Web页面上直接打开、编辑、创建Office文档
Mar 12 #Javascript
(function(){})()的用法与优点
Mar 11 #Javascript
可以文本显示的公告栏的js代码
Mar 11 #Javascript
简单三步,搞掂内存泄漏
Mar 10 #Javascript
如何简单地用YUI做JavaScript动画
Mar 10 #Javascript
可缩放Reloaded-一个针对可缩放元素的复用组件
Mar 10 #Javascript
You might like
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
PHP session会话的安全性分析
2011/09/08 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
jQuery Ajax之load()方法
2009/10/12 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
js中日期的加减法
2015/05/06 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
Python 字符串中的字符倒转
2008/09/06 Python
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
python获取array中指定元素的示例
2019/11/26 Python
通过实例解析Python调用json模块
2019/12/11 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
银行见习期自我鉴定
2014/01/29 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
护士业务学习心得体会
2016/01/25 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
详解Python中的for循环
2022/04/30 Python