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 相关文章推荐
CSDN轮换广告图片轮换效果
Mar 27 Javascript
jQuery 选择同时包含两个class的元素的实现方法
Jun 01 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
jQuery 选择器(61种)整理总结
Sep 26 Javascript
使用开源工具制作网页验证码的方法
Oct 17 Javascript
探究Vue.js 2.0新增的虚拟DOM
Oct 20 Javascript
canvas时钟效果
Feb 16 Javascript
Vue.js实战之组件的进阶
Apr 04 Javascript
详解webpack异步加载业务模块
Jun 23 Javascript
Vue.js 单页面多路由区域操作的实例详解
Jul 17 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
Nov 05 Javascript
js实现弹出框的拖拽效果实例代码详解
Apr 16 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
Bootstrap基本插件学习笔记之折叠(22)
2016/12/08 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
微信小程序收藏功能的实现代码
2020/06/19 Javascript
python动态加载变量示例分享
2014/02/17 Python
python查询mysql中文乱码问题
2014/11/09 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
Python制作数据导入导出工具
2015/07/31 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
python中reader的next用法
2018/07/24 Python
python判断完全平方数的方法
2018/11/13 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
介绍一下mysql的日期和时间函数
2013/03/28 面试题
小学教师师德演讲稿
2014/05/06 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
汶川大地震感悟
2015/08/10 职场文书
代码复现python目标检测yolo3详解预测
2022/05/06 Python