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 相关文章推荐
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
May 26 Javascript
JQuery获取文本框中字符长度的代码
Sep 29 Javascript
YUI Compressor压缩JavaScript原理及微优化
Jan 07 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
Jan 08 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
Apr 23 Javascript
JavaScript中的连字符详解
Nov 28 Javascript
jquery中animate的stop()方法作用实例分析
Jan 30 Javascript
js带前后翻页的图片切换效果代码分享
Sep 08 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 Javascript
谈谈JavaScript的New关键字
Aug 26 Javascript
JS二叉树的简单实现方法示例
Apr 05 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 单引号与双引号的区别
2009/11/24 PHP
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
网站上面有这种切换效果
2006/06/26 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
如何使用jquery实现文字上下滚动效果
2016/10/12 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
使用JavaScript实现贪吃蛇游戏
2020/09/29 Javascript
Python3实现连接SQLite数据库的方法
2014/08/23 Python
python的Template使用指南
2014/09/11 Python
简单谈谈Python流程控制语句
2016/12/04 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
python 如何在测试中使用 Mock
2021/03/01 Python
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
几道Web/Ajax的面试题
2016/11/05 面试题
某同学的自我鉴定范文
2013/12/26 职场文书
安全保证书格式
2015/02/28 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
薪资证明范本
2015/06/19 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis