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 29 Javascript
利用js读取动态网站从服务器端返回的数据
Feb 10 Javascript
分享经典的JavaScript开发技巧
Nov 21 Javascript
javascript拖拽应用实例
Mar 25 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
Jan 22 Javascript
Vue中保存用户登录状态实例代码
Jun 07 Javascript
详解vue数据渲染出现闪烁问题
Jun 29 Javascript
详解webpack 多页面/入口支持&amp;公共组件单独打包
Jun 29 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
Aug 29 Javascript
Javasript设计模式之链式调用详解
Apr 26 Javascript
JavaScript中.min.js和.js文件的区别讲解
Feb 13 Javascript
jquery实现聊天机器人
Feb 08 jQuery
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数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
React组件的三种写法总结
2017/01/12 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
[02:01]大师之路——DOTA2完美大师赛11月论剑上海
2017/11/06 DOTA
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
C#和SQL Server的面试题
2016/08/12 面试题
奶茶店创业计划书范文
2014/01/17 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
理想演讲稿范文
2014/05/21 职场文书
广播节目策划方案
2014/05/23 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
GPU服务器的多用户配置方法
2022/07/07 Servers