如何调整图像大小,但使用javascript保持其比例?
我有一个“文件”输入和一个函数,由事件“onchange”调用。它所做的是调整大小和显示图像,但这并不完全是我需要的如何调整图像大小,但使用javascript保持其比例?,javascript,jquery,html,Javascript,Jquery,Html,我有一个“文件”输入和一个函数,由事件“onchange”调用。它所做的是调整大小和显示图像,但这并不完全是我需要的 <input type="file" id="imgUp" accept=".jpg" onchange="readURL(this);" > <script type="text/javascript"> function readURL(input) { if (input.files && input.fi
<input type="file" id="imgUp" accept=".jpg" onchange="readURL(this);" >
<script type="text/javascript">
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#avatar,#image')
.attr('src', e.target.result)
.width(70)
.height(70);
};
reader.readAsDataURL(input.files[0]);
}
}
</script>
函数readURL(输入){
if(input.files&&input.files[0]){
var reader=new FileReader();
reader.onload=函数(e){
$(“#头像,#图像”)
.attr('src',e.target.result)
.宽度(70)
.身高(70);
};
reader.readAsDataURL(input.files[0]);
}
}
是否可以在不使用jQuery的情况下使用Javascript调整大小(保持比例)并显示图像
提前谢谢你 要保留纵横比,您可以只设置图像的宽度或高度,而不是同时设置这两个值 以下是一个例子:
$('#avatar,#image').attr('src', e.target.result).width(70);
或
在香草Javascript中:
var imgs = document.querySelectorAll("#image, #avatar");
for(var i = 0; i < imgs.length; i++){
imgs[i].src = e.target.result;
imgs[i].width = 70;// or imgs[i].height = 70;
}
var-imgs=document.queryselectoral(“#image,#avatar”);
对于(变量i=0;i
要保留纵横比,您只能设置图像的宽度或高度,而不能同时设置这两个值 以下是一个例子:
$('#avatar,#image').attr('src', e.target.result).width(70);
或
在香草Javascript中:
var imgs = document.querySelectorAll("#image, #avatar");
for(var i = 0; i < imgs.length; i++){
imgs[i].src = e.target.result;
imgs[i].width = 70;// or imgs[i].height = 70;
}
var-imgs=document.queryselectoral(“#image,#avatar”);
对于(变量i=0;i
将隐式高度和宽度声明更改为最大高度和最大宽度:
.css('max-width','70px')。css('max-height','70px')代码>
使用“最大高度”和“最大宽度”设置它应该使用的边界框,然后图像将以其本机纵横比适合该边界框
本地香草JS:
.style.maxWidth='70px'代码>
.style.maxHeight='70px'代码>
如果您想从jQuery转向vanilla JS(我为您这么做而鼓掌),请尝试
您的代码的标准转换:
$('#avatar,#image')
.attr('src', e.target.result)
.width(70)
.height(70);
};
变成:
var elements = document.querySelectorAll('#avatar,#image');
Array.prototype.forEach.call(elements, function(el, i){
el.setAttribute('src', e.target.result);
el.style.maxWidth = '70px';
el.style.maxHeight = '70px';
});
将隐式高度和宽度声明更改为最大高度和最大宽度:
.css('max-width','70px')。css('max-height','70px')代码>
使用“最大高度”和“最大宽度”设置它应该使用的边界框,然后图像将以其本机纵横比适合该边界框
本地香草JS:
.style.maxWidth='70px'代码>
.style.maxHeight='70px'代码>
如果您想从jQuery转向vanilla JS(我为您这么做而鼓掌),请尝试
您的代码的标准转换:
$('#avatar,#image')
.attr('src', e.target.result)
.width(70)
.height(70);
};
变成:
var elements = document.querySelectorAll('#avatar,#image');
Array.prototype.forEach.call(elements, function(el, i){
el.setAttribute('src', e.target.result);
el.style.maxWidth = '70px';
el.style.maxHeight = '70px';
});