js实现固定显示区域内自动缩放图片的方法
本文实例讲述了js实现固定显示区域内自动缩放图片的方法。分享给大家供大家参考。具体实现方法如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>无标题文档</title> <styletype="text/css"> #img{width:600px;height:400px;position:relative;overflow:hidden;background:#996699;} </style> </head> <body> <divid="img"><imgsrc="dsds.JPG"onload="resize_img(this,600,400)"/></div> </body> </html> <scripttype="text/javascript"> functionresize_img(pic,w,h){ varre_new_size=function(r){ //根据比率重新计算宽度 return{w:pic.width/r,h:pic.height/r}; }; varre_offset=function(n){ //根据新的宽高度返回偏移量 return{off_l:(n.w-w)*0.5,off_t:(n.h-h)*0.5}; }; varre_position=function(o,n){ //重新定位图片 pic.style.cssText="position:absolute;top:"+-o.off_t+"px;left:"+-o.off_l+"px;width:"+n.w+"px;height:"+n.h+"px;"; }; varexecute=function(rate){ varnew_size=re_new_size(rate), offset_new=re_offset(new_size); re_position(offset_new,new_size); }; varrate_of_w=pic.width/w, rate_of_h=pic.height/h, rate; if(rate_of_w>=1){ //图片宽度大于显示区域宽度 if(rate_of_h>=1){ //且图片高度大于显示区域高度 rate=Math.min(rate_of_w,rate_of_h); }else{ //图片高度小于显示区域 rate=pic.height/h; } }else{ //图片宽度小于显示区域宽度 if(rate_of_h>=1){ //且图片高度大于显示区域高度 rate=pic.width/w; }else{ //图片高度小于显示区域高度 rate=Math.min(rate_of_w,rate_of_h); } } execute(rate); //执行入口 } </script>
希望本文所述对大家的javascript程序设计有所帮助。