案例仅为图片预览功能,省略图片上传步骤,框架为easyui。

HTML代码:

 @*text-align:center;水平居中
vertical-align: middle;display: table-cell;垂直居中*@
<div id="img-dialog" style="text-align:center;vertical-align: middle;display: table-cell;padding:5px;">
  <img id="showImg" />
</div> <a href="javascript:void(0)" id="btnShow" onclick="showImga()"></a>

JS代码:

//图片预览
function showImga() {
//显示图片
$("#showImg").attr("src", "../UploadFile/Images/图片.png");
var img = new Image();
img.src = $('#showImg').attr("src");
var w = img.width; //获取图片实际宽度
var h = img.height;
var objImg = $("#showImg")[0];
var maxWidth = 500;
var maxHeight = 500;
autoResizable(w, h, maxWidth, maxHeight, objImg); $('#img-dialog').dialog({
title: '图片预览',
width: maxWidth,
height: maxHeight,
resizable: true, //设置窗体大小可拖动
onResize: function (width, height) { //窗体大小发生改变时触发
//这里为了显示完整图片,需减去easyui本身弹框dialog边框所占高度
autoResizable(w, h, width - 25, height - 35, objImg);
}
});
} //自动调整图片大小
//参数:图片宽度,图片高度,窗体宽度,窗体高度,图片对象
function autoResizable(w, h, maxWidth, maxHeight, objImg) {
var hRatio;
var wRatio;
var Ratio = 1;
wRatio = maxWidth / w;
hRatio = maxHeight / h;
if (maxWidth == 0 && maxHeight == 0) {
Ratio = 1;
} else if (maxWidth == 0) {
if (hRatio < 1) Ratio = hRatio;
} else if (maxHeight == 0) {
if (wRatio < 1) Ratio = wRatio;
} else if (wRatio < 1 || hRatio < 1) {
Ratio = (wRatio <= hRatio ? wRatio : hRatio);
}
if (Ratio < 1) {
w = w * Ratio;
h = h * Ratio;
} objImg.style.height = Math.round(h) + "px";
objImg.style.width = Math.round(w) + "px";
}

最终效果图:

JS实现图片预览与等比缩放的更多相关文章

  1. 纯JS实现图片预览与等比例缩放和居中

    最近做项目时有一个需求,广告位图片上传时要预览,并且要等比例缩放和居中.已经保存的广告位图片显示时也要等比例缩放和居中.我使用了下面的代码实现,不过可能有一些小问题. <!DOCTYPE HTM ...

  2. 兼容ie[6-9]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览

    html代码: <div id="divPreview"> <img id="imgHeadPhoto" src="Images/H ...

  3. js本地图片预览代码兼容所有浏览器

    html代码 <div id="divPreview" style="width: 160px; height: 170px"><img id ...

  4. js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3

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

  5. 如何通过js实现图片预览功能

    一.效果预览 效果图: 二.实现代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

  6. 原生JS实现图片预览功能

    html代码: <div class="album-new fr"> <div class="upload-btn btn-new container& ...

  7. 浅谈js本地图片预览

    最近在工作中遇到一个问题,就是实现一个反馈页面,这个反馈页面的元素有反馈主题.反馈类型.反馈内容.反馈人联系电话以及反馈图片.前端将这些反馈的元素POST给后台提供的接口:实现这个工作的步骤就是:页面 ...

  8. js实现图片预览

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  9. Jquery OR Js 实现图片预览

    Jquery方法一: <!DOCTYPE html> <html> <head>     <title></title>     <s ...

随机推荐

  1. sun.misc.Unsafe.park(Native Method)

    关闭tomcat时或者重启tomcat时 log4j2 报错: sun.misc.Unsafe.park(Native Method) 异常信息: 30-Aug-2018 15:59:34.900 S ...

  2. C++中引用的形参使用

    引用解释: (1)引用仅是变量的别名,而不是实实在在地定义了一个变量,因此引用本身并不占用内存,而是和目标变量共同指向目标变量的内存地址,即共用内存 (2)引用和目标变量的地址是一样的,对引用的操作与 ...

  3. 四、Centos linux系统优化

    1.     无论是哪个版本的linux,都会提供32位和64位的两个版本的镜像. i386为32位 x86_64为64位 两者的区别: 1)目标:需要大量的内存需求的行业为64位,普通用户的需求为3 ...

  4. ocp最新考试题库:052新考题及答案整理-36

    36.Which two are true about roles? A) A role can be granted a combination of system and object privi ...

  5. each和foreach的区别

    each和foreach的区别是什么,我一直忘了还有这一茬,现在把这个总结一下,以备后用. 1.foreach是js的原生方法:each是jq的方法: 例如: var arr = ['mary','j ...

  6. C# - 图片操作和Base64处理

    旋转 (1)按角度旋转 /// <summary> /// 根据角度旋转图标 /// </summary> /// <param name="img" ...

  7. 获取Android状态栏的高度

    Android 开发中经常需要知道屏幕高度.宽度.状态栏,标题栏的高度等 宽度和高度 WindowManager windowManager = (WindowManager) getSystemSe ...

  8. 查看Xcode配置文件

    终端命令 open ~/Library/MobileDevice/Provisioning\ Profiles/ 除去多余的配置文件 Xcode -> Build Settings -> ...

  9. 扩展欧拉定理【洛谷P4139】 上帝与集合的正确用法

    P4139 上帝与集合的正确用法 \(2^{2^{2^{\dots}}}\bmod p\) 卡最优解倒数第一祭. 带一下扩展欧拉定理就好了. code: #include <iostream&g ...

  10. 如何高度自定义CollectionView的header和foot

    最近在研究CollectionView,突然发现觉得他的HeaderSection和FootSection也可以高度自定义. 国外有详细的教程:http://www.appcoda.com/ios-c ...