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 相关文章推荐
Javascript 布尔型分析
Dec 22 Javascript
动态刷新 dorado树的js代码
Jun 12 Javascript
javascript自执行函数之伪命名空间封装法
Dec 25 Javascript
原生JS实现响应式瀑布流布局
Apr 02 Javascript
jQuery下拉美化搜索表单效果代码分享
Aug 25 Javascript
jQuery的文档处理程序详解
May 10 Javascript
AngularJs验证重复密码的方法(两种)
Nov 25 Javascript
微信小程序商品详情页规格属性选择示例代码
Oct 30 Javascript
彻底理解js面向对象之继承
Feb 04 Javascript
javascript实现计算指定范围内的质数示例
Dec 29 Javascript
javascript实现的时间格式加8小时功能示例
Jun 13 Javascript
在Vue 中获取下拉框的文本及选项值操作
Aug 13 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获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
详解如何运行vue项目
2019/04/15 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
[01:46]新英雄登场
2019/09/10 DOTA
numpy linalg模块的具体使用方法
2019/05/26 Python
python写入文件自动换行问题的方法
2019/07/05 Python
使用tensorboard可视化loss和acc的实例
2020/01/21 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
python3 配置logging日志类的操作
2020/04/08 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
Grid 宫格常用布局的实现
2020/01/10 HTML / CSS
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
汉语言文学毕业生求职信
2013/10/01 职场文书
自荐信怎么写好
2013/11/11 职场文书
创业计划书怎样才能打动风投
2014/01/01 职场文书
向领导表决心的话
2014/03/11 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
迎国庆横幅标语
2014/10/08 职场文书
个性发展自我评价2015
2015/03/09 职场文书
酒店宣传语大全
2015/07/13 职场文书
mysql 子查询的使用
2022/04/28 MySQL