[原创]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 相关文章推荐
JavaScript 学习点滴记录
Apr 24 Javascript
javascript 模拟点击广告
Jan 02 Javascript
Javascript图像处理思路及实现代码
Dec 25 Javascript
js向上无缝滚动,网站公告效果 具体代码
Nov 18 Javascript
JavaScript编程的单例设计模讲解
Nov 10 Javascript
JavaScript+html5 canvas实现本地截图教程
Apr 16 Javascript
浅谈对Angular中的生命周期钩子的理解
Jul 31 Javascript
基于Vue生产环境部署详解
Sep 15 Javascript
原生javascript实现文件异步上传的实例讲解
Oct 26 Javascript
Vue.use源码学习小结
Jun 20 Javascript
webpack4打包vue前端多页面项目
Sep 17 Javascript
基于Express框架使用POST传递Form数据
Aug 10 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生成静态页面详解
2006/12/05 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
Python内置的字符串处理函数整理
2013/01/29 Python
使用python装饰器验证配置文件示例
2014/02/24 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
Python3离线安装Requests模块问题
2019/10/13 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
大数据分析用java还是Python
2020/07/06 Python
两种CSS3伪类选择器详细介绍
2013/12/24 HTML / CSS
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
《桃林那间小木屋》教学反思
2014/05/01 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
房屋出租委托书格式
2014/09/23 职场文书
2014乡镇领导班子四风对照检查材料思想汇报
2014/10/05 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
杭州黄龙洞导游词
2015/02/10 职场文书
幼儿园个人总结
2015/02/28 职场文书
接待员岗位职责范本
2015/04/15 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle