[原创]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 相关文章推荐
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
Jul 26 Javascript
解决IE6的PNG透明JS插件使用介绍
Apr 17 Javascript
js控制iframe的高度/宽度让其自适应内容
Apr 09 Javascript
JQuery中基础过滤选择器用法实例分析
May 18 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
微信JSSDK调用微信扫一扫功能的方法
Jul 25 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
浅谈如何使用 webpack 优化资源
Oct 20 Javascript
javaScript之split与join的区别(详解)
Nov 08 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
vue2.0结合Element-ui实战案例
Mar 06 Javascript
JS中箭头函数与this的写法和理解
Jan 14 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 分页分组类
2009/12/10 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
简单了解常用的JavaScript 库
2020/07/16 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
python编写爬虫小程序
2015/05/14 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
Python chardet库识别编码原理解析
2020/02/18 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
傲盾软件面试题
2015/08/17 面试题
党员作风建设整改方案
2014/10/27 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
二审答辩状格式
2015/05/22 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
z-index不起作用
2021/03/31 HTML / CSS
vue backtop组件的实现完整代码
2021/04/07 Vue.js
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL