jquery中的javascript图像大小调整
我发现了一个脚本,用于动态调整图像大小以适应特定的宽度。我为自己的web应用程序修改了它,大部分时间它都能正常工作,但由于某些原因,当图像确实具有更大的宽度时,该函数有时会随机不触发if语句,因此我希望图像永远不会调整大小。我设置了一个超时,希望这个超时能给浏览器时间来读取图像。但是没有人知道为什么它不会触发 旁注:这是一款移动网络应用程序,我可以使用HTML5吗jquery中的javascript图像大小调整,javascript,image,Javascript,Image,我发现了一个脚本,用于动态调整图像大小以适应特定的宽度。我为自己的web应用程序修改了它,大部分时间它都能正常工作,但由于某些原因,当图像确实具有更大的宽度时,该函数有时会随机不触发if语句,因此我希望图像永远不会调整大小。我设置了一个超时,希望这个超时能给浏览器时间来读取图像。但是没有人知道为什么它不会触发 旁注:这是一款移动网络应用程序,我可以使用HTML5吗 var maxWidth = 200; var imgWidth = $('#locImg').width();
var maxWidth = 200;
var imgWidth = $('#locImg').width();
console.log(imgWidth);
setTimeout(function () {
if( imgWidth > maxWidth) {
newWidth = maxWidth;
var newHeight = $('#locImg').height() / ( $('#locImg').width() / maxWidth);
$('#locImg').height(newHeight).width(newWidth);
console.log($('#locImg').width());
$('#loc').css('visibility','visible');
}
else {
$('#loc').css('visibility','visible');
}
},750);
您可以使用类似这样的方法来确保图像已完全加载:
var maxWidth = 200;
var imgWidth = $('#locImg').width();
var image = new Image();
image.src = $('#locImg').attr("src");
image.onload = (function () {
if( imgWidth > maxWidth) {
newWidth = maxWidth;
var newHeight = $('#locImg').height() / ( $('#locImg').width() / maxWidth);
$('#locImg').height(newHeight).width(newWidth);
console.log($('#locImg').width());
$('#loc').css('visibility','visible');
}
else {
$('#loc').css('visibility','visible');
}
});
这样,它只在图像完全加载后才开始调整大小。我知道这是针对移动应用程序的,但如果您希望在旧版IE中使用此功能,则应在onload函数后定义image.src。@ThomasBrasington噢!不知道我有夸克在里面。。。并不是说我太惊讶了。哈哈,谢谢你提供的信息。:)