NEWS

分享创造价值   合作实现共赢

关于网页图片自适应大小的讨论

图片自适应大小在网页平面是一个长久的话题
偶就经常碰到这方面的问题曾经用过JS CSS 等办法来解决,但是还是不能很好的解决问题,今天偶就来总结下
===============================
我需要解决的图片自适应的条件是 图片的比例大小
都不同,却把这图片放在一个的方框里,这个方框可大
可小,按照人的意愿来设定这个方框的比例
现在我要做的是要让这些图片自适应这个方框,最长
不超过方框的长,最宽不超过方框的宽
===============================
下面的方法有些错误,但大体思路是这样
+++++++++++++++++++++++++++++++++++
以下是引用片段:
//图片自适应大小并绝对居中对齐
//函数 fImgageAuto
//方法 读取原始图片的爱游戏·AYX,按缩放比率进行缩放
//缺点 图片量大 似乎图片就图不完 不能完全显示
//原因不名,偶估计是onload太多的原因 
function fImageAuto(nID,nMaxWidth,nMaxHeight)
{
  var imageArr=document.getElementById(nID);
  var imageWidthRate,imgHeightRate;
  imageWidthRate=imageArr.offsetWidth/nMaxWidth;
  imageHeightRate=imageArr.offsetHeight/nMaxHeight;
  if(imageWidthRate >=imageHeightRate)
  {
  imageArr.style.width=nMaxWidth+"px";
  imageArr.style.height=imageArr.offsetHeight+"px";
  imageArr.style.marginTop=(nMaxHeight-imageArr.offsetHeight)/2+"px";
  }else if(imageWidthRate   imageArr.style.height=nMaxHeight+"px";
  imageArr.style.width =imageArr.offsetWidth+"px";
  imageArr.style.marginLeft=(nMaxWidth-imageArr.offsetWidth)/2+"px";
  }
  return true;
}

上例中我最后都是用 .style 来确认图片最后的长宽,
有人认为我CSS有点偏激,说用.width;.height来得更直接
++++++++++++++++++++++++++++++++++++++++++++++++++++
上例BUG:
基本算法错误,但中心思想没有偏离,作用域小,如果网页爱游戏·AYX(中国) - 官方网站片集有N个 那就要有N个JS调用耗费图片资源,于是就有了下面的修改
++++++++++++++++++++++++++++++++++++++++++++++++++++
以下是引用片段:
//图片自适应大小并绝对居中对齐
//函数 fImgageAuto
//能在同一个ID下对单独图片自适应外框大小
//Ver 2.1 最后更新07/08/27 by Amilim
function fImageAuto(nID,nMaxWidth,nMaxHeight)
{
  var objParentID =document.getElementById(nID);
  var objImg =objParentID.getElementsByTagName("img");
  var nImgNewRate =0;
  var nImgOldRate =nMaxWidth/nMaxHeight;
  for (i=0;i    nImgNewRate =objImg[i].offsetWidth/objImg[i].offsetHeight;
    if (nImgNewRate >=nImgOldRate) {
      objImg[i].style.height =nMaxWidth/nImgNewRate +"px";
      objImg[i].style.width =nMaxWidth +"px";
      objImg[i].style.marginTop =Math.round((nMaxHeight-nMaxWidth/nImgNewRate)/2) +"px";
      }else{
      objImg[i].style.width =nMaxHeight*nImgNewRate +"px";
      objImg[i].style.height =nMaxHeight +"px";
      objImg[i].style.marginLeft =(nMaxWidth-nMaxHeight*nImgNewRate)/2 +"px";
      }
    }
}
在一个父ID中的所有IMG元素进行图片自适应缩放
优化了算法 四例对比
真正做到了多比例图片 图片自适应(类似WINDOW,缩略图的效果)

OK 到此为止(上例 多用于产品图片展示)
相关文章
首页 电话 案例 关于