JS实现图片预览与等比缩放

案例仅为图片预览功能,省略图片上传步骤,框架为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";
}

 最终效果图:

转载于:https://www.cnblogs.com/mu1516633121/p/7646324.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值