js图片等比缩放

 1 function reset_pic(obj, size) {
 2     size = size.split(',');    
 3     var dW = size[0];
 4     var dH = size[1];
 5     var img = new Image();
 6     img.src = obj.src;
 7     if(img.width/img.height >= dW/dH) {
 8         if(img.width > dW) {
 9             obj.width = dW;
10             obj.height = img.height*dW/img.width;    
11         }else {
12             obj.width = img.width;
13             obj.height = img.height > dH ? img.height*img.width/dW : img.height;    
14         }    
15     }else {
16         if(img.height > dH) {
17             obj.height = dH;
18             obj.width = img.width*dH/img.height;
19         }else {
20             obj.height = img.height;
21             obj.width = img.width > dW ? img.height*img.width/dH : img.width;
22         }    
23     }
24     obj.style.marginTop = (dH-obj.height)/2+'px';
25 }

example: <img src="abc.jpg" onload="reset_pic(this, '300,200')" />

posted @ 2012-07-30 17:37  mr.coke  阅读(179)  评论(0)    收藏  举报