jq自动控制图片等比例缩放

利用js自动控制图片调整大小,按照预定义的比例进行等比缩放图片。

在商品详情等情景比较合适,这样不会导致图片过度变形影响体验效果。

$(function(){
    /* 图片不完全按比例自动缩小*/
    $('.detail img').each(function(){

        var x = 400; //填入目标图片宽度
        var y = 240; //填入目标图片高度
        var w=$(this).width(), h=$(this).height();//获取图片宽度、高度
        console.log(w,h)
        if (w > x) { //图片宽度大于目标宽度时
            var w_original=w, h_original=h;
            h = h * (x / w); //根据目标宽度按比例算出高度
            w = x; //宽度等于预定宽度
            if (h < y) { //如果按比例缩小后的高度小于预定高度时
                w = w_original * (y / h_original); //按目标高度重新计算宽度
                h = y; //高度等于预定高度
            }
        }
        $(this).attr({width:w,height:h});
    });
});


组合下面的使用就妙不可言了:

窗口可视区域宽度: document.documentElement.clientWidth || document.body.clientWidth;

窗口可视区域高度: document.documentElement.clientHeight || document.body.clientHeight;

窗口可视区域宽度+边线和滚动条: document.body.offsetWidth ;

窗口可视区域高度+边线和滚动条: document.body.offsetHeight ;

实际内容的宽度: document.body.scrollWidth;

实际内容的高度: document.body.scrollHeight;

滚动条下拉被卷起来的距离:document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

滚动条侧拉被卷起来的距离:document.body.scrollLeft || document.documentElement.scrollLeft ;

网页正文部分上:window.screenTop;

网页正文部分左:window.screenLeft;

元素的宽度:obj.offsetWidth;

元素的高度:obj.offsetHeight;

相对于父元素的上位移:obj.offsetTop;(在元素的包含元素不含滚动条的情况下)

相对于父元素的左位移:obj.offsetLeft;(在元素的包含元素不含滚动条的情况下)


评论/留言