图片等比例缩放

来源:互联网 发布:学校机房系统还原软件 编辑:程序博客网 时间:2024/04/28 21:31
1.
  1. var showImgSize = function(imgsize,areasize,obj) {
  2.     var new_w = new_h = 0;
  3.     var img = new Image();
  4.     img.src = $(obj).attr('src');
  5.     if(img.width>0) {
  6.         ori_w = img.width;
  7.         ori_h = img.height;
  8.     }else{
  9.         img = imgsize.split("x");
  10.         ori_w = img[0]=="null"?100:parseInt(img[0]);
  11.         ori_h = img[1]=="null"?100:parseInt(img[1]);
  12.     }
  13.     //图片原始大小写入DOM自定义属性
  14.     obj.orgWidth = ori_w;
  15.     obj.orgHeight = ori_h;
  16.     area = areasize.split("x");
  17.     area_w = parseInt(area[0]);
  18.     area_h = parseInt(area[1]);
  19.     if(ori_w>ori_h) {
  20.         new_w = ori_w>area_w?area_w:ori_w;
  21.         new_h = parseInt(ori_h*new_w/ori_w);
  22.         if(new_h>area_h) {
  23.             new_h = area_h;
  24.             new_w = parseInt(ori_w*new_h/ori_h);
  25.         }
  26.         //obj.zoomsize = new_w/ori_w *100;
  27.         $(obj).css('zoomsize',new_w/ori_w *100);
  28.     } else {
  29.         new_h = ori_h>area_h?area_h:ori_h;
  30.         new_w = parseInt(ori_w*new_h/ori_h);
  31.         if(new_w>area_w) {
  32.             new_w = area_w;
  33.             new_h = parseInt(ori_h*new_w/ori_w);
  34.         }
  35.         //图片缩放率大小写入DOM自定义属性
  36.         $(obj).css('zoomsize',new_h/ori_h *100);
  37.     }
  38.     if(obj) {
  39.         $(obj).width(new_w);
  40.         $(obj).height(new_h);
  41.     }
  42.     return {width: new_w, height: new_h, roomsize: obj.roomsize};
  43. }
2. 页面加载

  1. /*
  2. **************图片预加载插件******************
  3. ///作者:没剑(2008-06-23)
  4. ///http://regedit.cnblogs.com
  5. ///说明:在图片加载前显示一个加载标志,当图片下载完毕后显示图片出来
  6. 可对图片进行是否自动缩放功能
  7. 此插件使用时可让页面先加载,而图片后加载的方式,
  8. 解决了平时使用时要在图片显示出来后才能进行缩放时撑大布局的问题
  9. ///参数设置:
  10. scaling     是否等比例自动缩放
  11. width       图片最大高
  12. height      图片最大宽
  13. loadpic     加载中的图片路径
  14. */
  15. jQuery.fn.LoadImage=function(scaling,width,height,loadpic){
  16.     if(loadpic==null)loadpic="load3.gif";
  17.     return this.each(function(){
  18.         var t=$(this);
  19.         var src=$(this).attr("src")
  20.         var img=new Image();
  21.         //alert("Loading...")
  22.         img.src=src;
  23.         //自动缩放图片
  24.         var autoScaling=function(){
  25.             if(scaling){
  26.             
  27.                 if(img.width>0 && img.height>0){ 
  28.                     if(img.width/img.height>=width/height){ 
  29.                         if(img.width>width){ 
  30.                             t.width(width); 
  31.                             t.height((img.height*width)/img.width); 
  32.                         }else
  33.                             t.width(img.width); 
  34.                             t.height(img.height); 
  35.                         } 
  36.                     } 
  37.                     else
  38.                         if(img.height>height){ 
  39.                             t.height(height); 
  40.                             t.width((img.width*height)/img.height); 
  41.                         }else
  42.                             t.width(img.width); 
  43.                             t.height(img.height); 
  44.                         } 
  45.                     } 
  46.                 } 
  47.             }   
  48.         }
  49.         //处理ff下会自动读取缓存图片
  50.         if(img.complete){
  51.             //alert("getToCache!");
  52.             autoScaling();
  53.             return;
  54.         }
  55.         $(this).attr("src","");
  56.         var loading=$("<img alt=/"加载中.../" title=/"图片加载中.../" src=/""+loadpic+"/" />");
  57.         
  58.         t.hide();
  59.         t.after(loading);
  60.         $(img).load(function(){
  61.             autoScaling();
  62.             loading.remove();
  63.             t.attr("src",this.src);
  64.             t.show();
  65.             //alert("finally!")
  66.         });
  67.         
  68.     });
  69. }





原创粉丝点击