JS实现图片大小自适应且位置居中,防止图片变形
2017-05-11 13:29
417 查看
/*
2016-7-29
图片大小自适应,防止图片变形
其中 maxWidth 是图片显示的最大宽度,maxHeight 是图片显示的最大高度,
1.均为0则不进行缩放,
2.maxWidth=0,且实际高度>maxHeight时,以高度缩放比例缩小,
3.maxHeight=0,且实际宽度>maxWidth时,以宽度缩放比例缩小,
4.实际高度>maxHeight,且实际宽度>maxWidth时,则以缩放比例小的进行缩小,
5.否则不对图片进行缩放。
调用示例
*/
function AutoResizeImage(maxWidth, maxHeight, objImg) {
var img = new Image();
img.src = objImg.src;
var hRatio;
var wRatio;
var Ratio = 1;
var w = img.width; //图片实际宽度
var h = img.height;
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 (wRatio < hRatio) {
objImg.style.marginTop = (maxHeight - h * Ratio) / 2 + ‘px’; //使图片垂直居中
}
else {
objImg.style.marginLeft = (maxWidth - w * Ratio) / 2 + ‘px’; //使图片水平居中
}
}
else {
objImg.style.marginTop = (maxHeight - h) / 2 + ‘px’;
objImg.style.marginLeft = (maxWidth - w) / 2 + ‘px’;
}
if (Ratio < 1) {
w = w * Ratio; h = h * Ratio;
}
objImg.height = h; objImg.width = w;
}
2016-7-29
图片大小自适应,防止图片变形
其中 maxWidth 是图片显示的最大宽度,maxHeight 是图片显示的最大高度,
1.均为0则不进行缩放,
2.maxWidth=0,且实际高度>maxHeight时,以高度缩放比例缩小,
3.maxHeight=0,且实际宽度>maxWidth时,以宽度缩放比例缩小,
4.实际高度>maxHeight,且实际宽度>maxWidth时,则以缩放比例小的进行缩小,
5.否则不对图片进行缩放。
调用示例
*/
function AutoResizeImage(maxWidth, maxHeight, objImg) {
var img = new Image();
img.src = objImg.src;
var hRatio;
var wRatio;
var Ratio = 1;
var w = img.width; //图片实际宽度
var h = img.height;
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 (wRatio < hRatio) {
objImg.style.marginTop = (maxHeight - h * Ratio) / 2 + ‘px’; //使图片垂直居中
}
else {
objImg.style.marginLeft = (maxWidth - w * Ratio) / 2 + ‘px’; //使图片水平居中
}
}
else {
objImg.style.marginTop = (maxHeight - h) / 2 + ‘px’;
objImg.style.marginLeft = (maxWidth - w) / 2 + ‘px’;
}
if (Ratio < 1) {
w = w * Ratio; h = h * Ratio;
}
objImg.height = h; objImg.width = w;
}
相关文章推荐
- js实现图片的大小自适应效果
- html/js 实现背景图片自适应窗口分辨率大小
- js实现div内图片自适应大小 并裁剪
- 纯js实现div内图片自适应大小----神器版!
- JS&RE 控制图片显示大小, 弹出窗口自适应大小,自居中, 结合UBB与正则使用 By Stabx
- 弹出窗口根据内容调整大小并居中的JS实现(适用IE、活动窗口和模式窗口)
- js跨域问题之跨域iframe自适应大小实现代码
- 关于css控制图片大小不变形的实现思路
- JS实现点击某张图片弹出上传图片窗口以及限制图片格式和大小
- JS+css 图片自动缩放自适应大小
- 从网上摘的一个图片自适应大小的js代码 高手请飘过
- js实现判断图片上传判断大小
- ASP.NET实现自适应图片大小的弹出窗口(窗口可任意编辑)
- JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
- 纯JS实现图片预览与等比例缩放和居中
- js和php计算图片自适应宽高算法实现
- js实现图象大小自适应
- js图片自适应尺寸居中函数处理