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隐藏标签和显示标签的实例
Nov 11 Javascript
checkbox选中与未选中判断示例
Aug 04 Javascript
javascript实现捕捉键盘上按下的键
May 05 Javascript
jquery实现表单输入时提示文字滑动向上效果
Aug 10 Javascript
第三篇Bootstrap网格基础
Jun 21 Javascript
Vue.js如何优雅的进行form validation
Apr 07 Javascript
angularjs中$http异步上传Excel文件方法
Feb 23 Javascript
vue实现添加与删除图书功能
Oct 07 Javascript
使用pkg打包Node.js应用的方法步骤
Oct 19 Javascript
基于vue实现web端超大数据量表格的卡顿解决
Apr 02 Javascript
详解vue中的父子传值双向绑定及数据更新问题
Jun 13 Javascript
vue项目中全局引入1个.scss文件的问题解决
Aug 01 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
PHP 文件缓存的性能测试
2010/04/25 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
详解Python编程中基本的数学计算使用
2016/02/04 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
python map比for循环快在哪
2020/09/21 Python
Python中Selenium模块的使用详解
2020/10/09 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
HTML5 Canvas入门学习教程
2016/03/17 HTML / CSS
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
2014年计算机专业个人自我评价
2014/01/19 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
管理失职检讨书范文
2015/05/05 职场文书
行政复议答复书
2015/07/01 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server