js控制 固定框架内图片 等比例显示 以及 占满框架 纵横居中显示

通过设置 js函数 fitDiv里面var fit的值就好

function fitDiv (obj) {
var target_width=$(obj).parents('.holder').innerWidth();
var target_height=$(obj).parents('.holder').innerHeight();
var target_factor=parseInt(target_width)/parseInt(target_height);
var fit=0;//0 填充满整个区域 1 缩放到适应区域
var img= new Image();
img.src=$(obj).attr('src');
var source_width=img.width > 0 ? img.width : target_width;
var source_height=img.height > 0 ? img.height : target_height;
var source_factor=parseInt(source_width)/parseInt(source_height);
var tmp=0;
if (source_factor>=target_factor) {
//原图比较扁平
//$(obj).css('padding-top',tmp+'px');
if(fit==1){
source_height=target_width/source_factor;
tmp=Math.abs((source_height-target_height)/2);
$(obj).width(target_width).height(source_height).wrap('<div style="margin-top:'+tmp+'px;"></div>');
}else{
source_width=target_height*source_factor;
tmp=Math.abs((source_width-target_width)/2);
$(obj).width(source_width).height(target_height).wrap('<div style="margin-left:-'+tmp+'px;"></div>');
}
}else{
//原图比较长条
if(fit==1){
tmp=Math.abs((target_width-(target_height*source_factor))/2);
$(obj).width('auto').height(target_height).wrap('<div style="margin-left:'+tmp+'px;"></div>');
}else{
tmp=Math.abs((target_height-(target_width/source_factor))/2);
$(obj).width(target_width).wrap('<div style="margin-top:-'+tmp+'px;"></div>');
}
}
} window.onload = function(){
$('.fitfather div img').each(function(){
fitDiv(this);
});
}

案例在: http://runjs.cn/code/psh7sjbo

js控制 固定框架内图片 按比例显示 以及 占满框架 居中显示的更多相关文章

  1. 一段JS控制TD中图片的大小的代码

    一段JS控制TD中图片的大小的代码 <table><tr><td id="otd"><div></div><img ...

  2. NPOI 图片在单元格等比缩放且居中显示

    NPOI导出的图片默认是在单元格左上方,这使得图片在单元格显示得很难看.居中,且等比缩放,才是图片在单元格上的完美展示. /// <summary> /// 图片在单元格等比缩放居中显示 ...

  3. 一种让超大banner图片不拉伸、全屏宽、居中显示的方法

    现在很多网站的Banner图片都是全屏宽度的,这样的网站看起来显得很大气.这种Banner一般都是做一张很大的图片,然后在不同分辨率下都是显示图片的中间部分.实现方法如下: <html> ...

  4. [转]一种让超大banner图片不拉伸、全屏宽、居中显示的方法

    现在很多网站的Banner图片都是全屏宽度的,这样的网站看起来显得很大气.这种Banner一般都是做一张很大的图片,然后在不同分辨率下都是显示图片的中间部分.实现方法如下: <html> ...

  5. 转载 | 一种让超大banner图片不拉伸、全屏宽、居中显示的方法

    现在很多网站的Banner图片都是全屏宽度的,这样的网站看起来显得很大气.这种Banner一般都是做一张很大的图片,然后在不同分辨率下都是显示图片的中间部分.实现方法如下: <html> ...

  6. js控制div内的滚动条的位置

    通过div的scrollTop变动控制垂直滚动条位置. 通过div的scrollLeft变动控制水平滚动条位置. 示例: <body> //d1是外层div,带滚动条 <div id ...

  7. 纯js实现div内图片自适应大小

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. highcharts 当Y轴全部没有数据的时候 数据标签显示最下面 而不是居中显示

    yAxis: {min: 0,minRange: 1}

  9. 延迟加载外部js文件,延迟加载图片(jquery.lazyload.js和echo,js)

    js里一说到延迟加载,大都离不开两种情形,即外部Js文件的延迟加载,以及网页图片的延迟加载: 1.首先简单说一下js文件的3种延迟加载方式: (1)<script type="text ...

随机推荐

  1. 学习opencv之路(一)

    先看一下<学习opencv> 找几个demo 学会相机标定 我做的是单目相机的标定.

  2. 2014年7月份第3周51Aspx源码发布详情

    Froor高校校园网站源码  2014-7-18 [VS2010]源码介绍:这是一款有关高校门户网站的毕业设计源码,功能相对比较完善,界面也比较美观,对门户网站感兴趣的朋友们可以下载研究一下.该源码功 ...

  3. java的数据类型转换

    java中有八种基本数据类型分别是字节型byte.整型int.短整型short.长整型long.单精度浮点型float.双精度浮点型double.字符型char.布尔型boolean.这些基本数据类型 ...

  4. DOM扩展之HTML5 插入标记

    11.3.6 插入标记 当需要在文档中插入大量的HTML标记时,通过DOM操作就会是非常麻烦的,相对而言,使用插入标记的技术,直接插入HTML字符串不仅简单而且更快.以下插入标记相关的DOM操作已经纳 ...

  5. MVC 请求处理流程(二)

    [上一篇]中我们说到了对象AsyncControllerActionInvoker,在Controller的ExecuteCore方法中调用AsyncControllerActionInvoker对象 ...

  6. STM32系列单片机IO口模式设置

    STM32单片机的每组IO口都有4个32位配置寄存器用于配置GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR和GPIOx_PUPDR,2个32位数据寄存器用于配置输入和 ...

  7. tcp状态机

    tcp共有11种状态,其中涉及到关闭的状态有5 个.这5 个状态相互关联,相互纠缠,而且状态变化触发都是由应用触发,但是又涉及操作系统和网络,所以正确的理解TCP 在关闭时网络状态变化情况,为我们诊断 ...

  8. 用H5和js写一个移动端自定义播放器

    前言 由于html5自带的播放器样式不怎么好看,大多数人都是自己写一个来满足业务需求.这一次的需求如下: 1.不要上一曲下一曲 2.有进度条和播放暂停按钮 3.有时间显示 demo实现功能 1.进度条 ...

  9. 【转】我是如何在SQLServer中处理每天四亿三千万记录的

    原文转自:http://blog.jobbole.com/80395/ 首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文 ...

  10. Reconstruct Itinerary

    Given a list of airline tickets represented by pairs of departure and arrival airports [from, to], r ...