图片缩放JavaScript原生实现
function scalImg(aLi){
for(var i=0,l=aLi.length;i<l;i++){
var oImg = new Image(),
oLi = aLi[i],
imgEle = oLi.children[0]; oLi.style.width = winW+'px';
oImg.src = imgEle.src;
imgEle.style.width = 'auto';
imgEle.style.height = 'auto'; /*初始化图片尺寸,相对屏幕水平垂直居中处理;以最大边为基准等比例缩放*/
(function(img){
oImg.onload = function(){
var imgW = this.width,
imgH = this.height,
rate = imgW/imgH,
winRate = winW/winH,
w = 0,
h = 0; if(rate>1){ /*图片宽度大于图片高度*/
w=Math.min(imgW,winW);
h = w/rate;
if(h>winH){ /*缩放后高度大于屏幕高度*/
img.style.height = winH +'px';
}else{
img.style.width = w+'px';
}
}else{
h = Math.min(imgH,winH);
w = h*rate;
if(w>winW){ /*缩放后宽度大于屏幕宽度*/
img.style.width = winW +'px';
}else{
img.style.height = h+'px';
}
}
}
})(imgEle);
}
}
缩放比例的大致方法是
1、new一个img对象,
2、添加img src属性
3、在img的load函数中判断其宽高比例;
判断:若宽度大于高度 此时选择 一个图片宽度;从页面宽度和图片本身宽度中选择较小的宽度作为图片计算宽度;
然后根据比例算出图片高度,
此时又得判断若图片高度大于页面高度,图片最终按照高度缩放,高度等于页面高度;
反之按照图片宽度缩放页面;
若宽度小于高度;
在图片高度和页面高度间选择一个一个较小的值作为计算高度,按比例计算出图片宽度。
若图片宽度大于页面宽度,图片按宽度缩放,宽度等于页面宽度;
反之图片按高度缩放,高度等于计算高度;
图片缩放JavaScript原生实现的更多相关文章
- 据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展
在据说每个大牛.小牛都应该有自己的库——框架篇中我扬言要做个小牛,没想到一天没更新,小伙儿伴们就戏谑的问我,油哥是不是要太监了?其实事情是这个样子的,这不是太监的节奏,一是,关于写个自己的库的想法由来 ...
- JavaScript原生对象拓展
JavaScript原生对象拓展 在据说每个大牛.小牛都应该有自己的库——框架篇中我扬言要做个小牛,没想到一天没更新,小伙儿伴们就戏谑的问我,油哥是不是要太监了?其实事情是这个样子的,这不是太监的节奏 ...
- jQuery? 回归JavaScript原生API
如今技术日新月异,各类框架库也是层次不穷.即便当年漫山红遍的JQuery(让开发者write less, do more,So Perfect!!)如今也有被替代的大势.但JS原生API写法依旧:并且 ...
- CSS实现图片缩放特效
今天是感恩节,祝大家感恩节快乐哦!最近天冷了,大家注意保暖哟.下面一起看看小颖写的demo吧. html代码: <!DOCTYPE html> <html> <head& ...
- HTML5 图片缩放功能
腾讯新闻上用的插件(xw.qq.com) 缩放插件scale.js (function(window, undefined) { var document = window.document, sup ...
- PHP图片裁剪_图片缩放_PHP生成缩略图
在制作网页过程中,为了排版整齐美观,对网页中的图片处理成固定大小尺寸的图片,或是要截去图片边角中含有水印的图片,对于图片量多,每天更新大量图,靠人工PS处理是不现实的,那么有没有自动处理图片的程序了! ...
- iOS开发UI篇—UIScrollView控件实现图片缩放功能
iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...
- UISlider显示进度(并且实现图片缩放)
图片展示效果如下: 其他没什么好说的,直接上代码: RootView.h: #import <UIKit/UIKit.h> @interface RootView : UIView @pr ...
- JavaScript原生折叠扩展收缩菜单带缓冲动画
JavaScript原生折叠扩展收缩菜单带缓冲动画 @落雨 <div id="div_two" style="display: none;"> &l ...
随机推荐
- Oracle EBS-SQL (MRP-4):检查例外信息查询_建议取消_采购申请.sql
select msi.segment1 编码 ,msi.description 描述 ,mr.old_order_quantit ...
- Windows提供了两种将DLL映像到进程地址空间的方法
调用DLL,首先需要将DLL文件映像到用户进程的地址空间中,然后才能进行函数调用,这个函数和进程内部一般函数的调用方法相同.Windows提供了两种将DLL映像到进程地址空间的方法: 1. 隐式的加载 ...
- Android Activity跳转动画,让你的APP瞬间绚丽起来
我们都知道绚丽的APP总会给用户耳目一新的感觉,为了抓住用户更大网络公司使出浑身解数让自己的产品更绚丽,而绚丽最简单的效果就是Activity跳转效果,不仅可以让用户看起来舒服,而且实现起来也特别简单 ...
- UML_行为图
活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流.活动图在本质上是一种流程图.活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的 ...
- Java面试题之九
四十六.Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 对于这个题,只要弄清楚Math提供的三个与取整相关的方法就OK了. 1.ceil,英文含义是天花板,该 ...
- hdu 5620 KK's Steel(推理)
Problem Description Our lovely KK has a difficult mathematical problem:he has a N(1≤N≤1018) meters s ...
- IE8对css文件的限制
很多人在写css时,时常把很多css样式放到一个文件中.也有些框架在上线后,能对很多css文件进行合并.这样能减少对服务器的请求次数,从而加快服务器的响应速度.在IE8中,当css的规则个数大于409 ...
- MIN (Transact-SQL)【转】
MIN (Transact-SQL) 其他版本 SQL Server 2005 此主题尚未评级 - 评价此主题 返回表达式中的最小值. 后面可能跟随 OVER 子句. Transact-S ...
- android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
http://blog.csdn.net/lilu_leo/article/details/11952717 有时候需要在在代码中设置LayoutParams,自己为一个FrameLayout设置 ...
- 移动端WEB开发 代码片段
WebApp是指基于Web的系统和应用,其作用是向广大的最终用户发布一组复杂的内容和功能(不明白说的是什么).其实Web APP就是一个针对Iphone.Android等智能手机优化后的web站点,它 ...