js实现图片的大小自适应效果

Posted pengpenglin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现图片的大小自适应效果相关的知识,希望对你有一定的参考价值。

需求是传过来一个图片,根据外层div的大小自动进行缩放效果。

function ShowSecondImg(v) {
    var rate, newX, newY,newW, newH = 0;   //表示图片相对窗口的缩放比例
    var imgW, imgH;
    var centerW = $(window).width() - $("#alarmQueue").width() - $("#presInfo").width() - 40;

    var centerH = $(window).height() - $("#detailedInfor").height()-148;
    $("#imgBoxs").find("#second").remove();
    var img = $(‘<img/>‘, { src: v.First_frame_image_url, "id": "second" });//v.First_frame_image_url

    img.prependTo(‘#imgBoxs‘);

    imgW = img.width();
    imgH = img.height();
    //获取的参数
    var rectX= parseInt(v.facerect.x);
    var rectY =parseInt(v.facerect.y);
    var rectWidth =parseInt(v.facerect.w);
    var rectHeight =parseInt(v.facerect.h);
    // alert(v.facerect.x);

    //var i = (centerW / 16 - centerH / 9) > 0 ? 0 : 1;
    var i= (centerW/centerH - imgW/imgH ) > 0 ? 0 : 1;
    if (i == 1) {
        //如果窗口宽不长,高长。以宽为准。
        rate = imgW / centerW;
        var imgRateH = imgH / rate;  //img real rate height;
        newX = rectX / rate
        newY = rectY / rate;
        newW = rectWidth / rate;
        newH = rectHeight / rate;

        $("#imgBox").width(centerW);
        $("#imgBox").css("height", "100%");
        $("#second").css({ "width": centerW, "height": imgRateH });
    }
    else if (i == 0) {
        //如果窗口宽足够长,高不长。以高为准。
        rate = centerH / imgH;
        var imgRateW = imgW * rate;  //img real rate width;
        var leftsideW = (centerW - imgRateW) / 2;    //leftside add rightside  width;
        newX = rectX * rate + leftsideW;
        newY = rectY * rate;
        newW = rectWidth * rate;
        newH = rectHeight * rate;

        $("#imgBox").height(centerH);
        $("#imgBox").css("width", "100%");
        $("#second").css({ "width": imgRateW, "height": centerH });

    }
    // $("#detailedInfor").height($(".container").height()-centerH);
    $("#faceDiv").attr(‘style‘, ‘display:block;top:‘ + newY + ‘px;left:‘ + newX + ‘px;width:‘ + newW + ‘px;height:‘ + newH + ‘px‘);

}

 

以上是关于js实现图片的大小自适应效果的主要内容,如果未能解决你的问题,请参考以下文章

html中map area 热区自适应的原生js实现方案

picturefill + picture 标签 实现兼容性很棒的 响应式图片 自适应 屏幕大小

轮播图js怎么设置图片自适应大小

如何让网页自适应屏幕大小

css背景图片自适应,怎么调?

Web实现图片自适应,多余部分裁剪(类小程序 mode=“aspectFill“)