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的25个步骤 千倍级效率提升
Feb 11 Javascript
jquery插件之easing使用
Aug 19 Javascript
VBS通过WMI监视注册表变动的代码
Oct 27 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
Dec 15 Javascript
JavaScript截断字符串的方法
Jul 15 Javascript
JavaScript计算某一天是星期几的方法
Aug 05 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
Jun 26 Javascript
JavaScript实现音乐自动切换和轮播
Nov 05 Javascript
vue实现div拖拽互换位置
Jul 29 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
Sep 26 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
Dec 16 Javascript
JavaScript架构localStorage特殊场景下二次封装操作
Jun 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程序实现支持页面后退的两种方法
2008/06/30 PHP
PHP 数据库树的遍历方法
2009/02/06 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
PHP的PSR规范中文版
2013/09/28 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
php json转换相关知识(小结)
2018/12/21 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
Js组件的一些写法
2010/09/10 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
JS正则表达式修饰符global(/g)用法分析
2016/12/27 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Java分治归并排序算法实例详解
2017/12/12 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
打印机墨盒:123Inkjets
2017/02/16 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
实习单位推荐信范文
2013/11/27 职场文书
教师四风问题整改措施
2014/09/25 职场文书
考研英语复习计划
2015/01/19 职场文书
刑事撤诉申请书
2015/05/18 职场文书
投诉信回复范文
2015/07/03 职场文书
谢师宴学生致辞
2015/07/27 职场文书
Python软件包安装的三种常见方法
2022/07/07 Python