js实现图片的等比例缩放

摘要:
Js实现图片的相等缩放CreateTime--2018年3月6日14:04:18作者:Marydon1.代码显示/***图片按宽高比自动缩放*@paramImgObj*缩放图像源对象*@parammaxWidth*允许缩放的最大宽度*@parammaxHeight*允许缩放最大高度*@用法*调用:˂imgsrc=“http://t.zoukankan.com/图片“onlo
 
js实现图片的等比例缩放

CreateTime--2018年3月6日14:04:18

Author:Marydon

1.代码展示

/**
 * 图片按宽高比例进行自动缩放
 * @param ImgObj
 *     缩放图片源对象
 * @param maxWidth
 *     允许缩放的最大宽度
 * @param maxHeight
 *     允许缩放的最大高度
 * @usage 
 *     调用:<img src="http://t.zoukankan.com/图片" onload="javascript:DrawImage(this,100,100)">
 */
function DrawImage(ImgObj, maxWidth, maxHeight){
    var image = new Image();
    //原图片原始地址(用于获取原图片的真实宽高,当<img>标签指定了宽、高时不受影响)
    image.src = ImgObj.src;
    // 用于设定图片的宽度和高度
    var tempWidth;
    var tempHeight;
    
    if(image.width > 0 && image.height > 0){
        //原图片宽高比例 大于 指定的宽高比例,这就说明了原图片的宽度必然 > 高度
        if (image.width/image.height >= maxWidth/maxHeight) {
            if (image.width > maxWidth) {
                tempWidth = maxWidth;
                // 按原图片的比例进行缩放
                tempHeight = (image.height * maxWidth) / image.width;
            } else {
                // 按原图片的大小进行缩放
                tempWidth = image.width;
                tempHeight = image.height;
            }
        } else {// 原图片的高度必然 > 宽度
            if (image.height > maxHeight) {  
                tempHeight = maxHeight;
                // 按原图片的比例进行缩放
                tempWidth = (image.width * maxHeight) / image.height;      
            } else {
                // 按原图片的大小进行缩放
                tempWidth = image.width;
                tempHeight = image.height;
            }
        }
        // 设置页面图片的宽和高
        ImgObj.height = tempHeight;
        ImgObj.width = tempWidth;
        // 提示图片的原来大小
        ImgObj.alt = image.width + "×" + image.height;
    }
}

2.测试

<body>
    <h2>原图片</h2>
    <img src="6.png" alt="500x3500"/>
    <h2>按比例缩放后的图片</h2>
    <img src="6.png" onload="javascript:DrawImage(this,145,100)"/>    
</body>

3.效果展示

js实现图片的等比例缩放第1张 

说明:还有一种最简单的方法,就是:给图片只设置宽度或高度,页面加载的时候,浏览器会自动对图片进行等比缩放或放大。 

 

免责声明:文章转载自《js实现图片的等比例缩放》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇了解动态链接(五)—— 动态符号表Ansible 系列之 Inventory 资源清单介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js常用代码

1.字符串截取substr(str,length)返回从指定位置开始,截取length长度的子字符串。substring(start,end)返回从start开始到end结束的字符串。end不写就到结尾。区别,前者截取长度,后者截取位置 2.页面跳转window.history.back();返回的是页面的状态,有可能删除的数据依然存在,需要locatio...

js 获取元素高度和宽度

如图: IE中:document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHei...

webdriver与JS操作浏览器元素

1、JQuery的选择器实例 语法 描述 $(this) 当前 HTML 元素 $("p") 所有 <p> 元素 $("p.intro") 所有 的 <p> 元素 $(".intro") 所有 的元素 $("#intro") 的元素 $("ul li:first") 每个 <ul> 的第一个...

js,jq,php使用正则方法

1.js使用正则表达式案例: <script> var str=”543535364565@qq.com”; var res=“/^d*@(QQ|qq|136).(com|cn)$/”; var result=res.exec(str); alert(result); </script> 2.php使用正则表达式案例: $em...

JS 富文本编码、解码

第一种  escape()和unescape()方法 escape() 方法能够把 ASCII之外的所有字符转换为 %xx 或 %uxxxx(x表示十六进制的数字)的转义序列。从 u000 到 u00ff 的 Unicode 字符由转义序列 %xx 替代,其他所有 Unicode 字符由 %uxxxx 序列替代。  如 var str = "编程最美";...

js各种间距数据汇总

clientX,offsetX,screenX,pageX区别 先总结下区别: event.clientX、event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。IE事件和标准事件都定义了这2个属性 event.pageX、event.pageY 类似于event.clientX、event.cl...