js实现固定显示区域内自动缩放图片的方法


Posted in Javascript onJuly 18, 2015

本文实例讲述了js实现固定显示区域内自动缩放图片的方法。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
#img{ width:600px; height:400px; position:relative; overflow:hidden; background:#996699;}
</style>
</head>
<body>
<div id="img"><img src="dsds.JPG" onload="resize_img(this,600,400)" /></div>
</body>
</html>
<script type="text/javascript">
function resize_img(pic,w,h){
 var re_new_size=function(r){
 //根据比率重新计算宽度
  return {w:pic.width/r,h:pic.height/r};
  };
 var re_offset=function(n){
 //根据新的宽高度返回偏移量
  return {off_l:(n.w-w)*0.5,off_t:(n.h-h)*0.5};
  }; 
 var re_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;";
  }; 
 var execute=function(rate){
  var new_size=re_new_size(rate),
    offset_new=re_offset(new_size);
  re_position(offset_new,new_size);
  };
 var rate_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程序设计有所帮助。

Javascript 相关文章推荐
在IE下:float属性会影响offsetTop的取值
Dec 22 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
Jul 10 Javascript
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
Nov 17 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
Jun 08 Javascript
仿JQuery输写高效JSLite代码的一些技巧
Jan 13 Javascript
微信小程序开发一键登录 获取session_key和openid实例
Nov 23 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
Vue组件tree实现树形菜单
Apr 13 Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 Javascript
JavaScript使用Ajax上传文件的示例代码
Aug 10 Javascript
vue+axios实现文件下载及vue中使用axios的实例
Sep 21 Javascript
javascript顺序加载图片的方法
Jul 18 #Javascript
javascript字符串循环匹配实例分析
Jul 17 #Javascript
动态加载jQuery的两种方法实例分析
Jul 17 #Javascript
javascript父子页面通讯实例详解
Jul 17 #Javascript
javascript实现的闭包简单实例
Jul 17 #Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
Jul 17 #Javascript
JavaScript实现基于十进制的四舍五入实例
Jul 17 #Javascript
You might like
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
php中Snoopy类用法实例
2015/06/19 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
javascript类继承机制的原理分析
2009/09/12 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
微信小程序实现购物页面左右联动
2019/02/15 Javascript
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
js实现简单抽奖功能
2020/11/24 Javascript
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
python 图片验证码代码分享
2012/07/04 Python
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
django框架forms组件用法实例详解
2019/12/10 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
计算机专业应届毕业生自荐信
2013/09/26 职场文书
个人生活学习自我评价范文
2013/11/26 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
运动会通讯稿200字
2014/02/16 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
公司租房协议书范本
2014/10/08 职场文书
司机个人年终总结
2015/03/03 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
李强为自己工作观后感
2015/06/11 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL