<分区>
标签 javascript jquery css
<分区>
我正在缩放图像以适应 div 并且我想通过使用位置将它们与信箱居中,但是当我尝试使用 .width()
获取元素的宽度时设置高度后立即.width()
返回 0。
例如:
$(image).css("height", "100%");
console.log($(image).width());
这会将 0 回显到控制台,但如果我调用 $(image).width()
稍后从控制台中,给出了正确的值。如何获得 <img>
的宽度元素在我改变它的高度后立即?
所以我的代码是这样的:
$(window).load(function(){
cSCMH();
});
function cSCMH()
{
//Some other code
for(var i = 0; i < $("sc mh im img").length; i++)
{
var image = $("sc mh im img")[i];
//More code
$(image).css("height", "100%");
console.log($(image).width());
}
}
控制台仍然收到0
好吧,我想我知道问题的根源是什么。图像在屏幕上可见之前不会加载到页面中(我将它们放在显示设置为无加载的选项卡 div 中)。
有没有办法强制加载图片,即使它们不可见?
我已经确认这是问题所在。在 div 的显示设置为阻塞之前,不会加载图像。如何改为在 onpageload 中加载图像?
最佳答案
尝试使用图像的加载事件
function cSCMH() {
$("sc mh im img").load(function () {
var $img = $(this);
$img.css("height", "100%");
console.log($img.width());
}).filter(function () {
return this.complete;
}).trigger('load');
}
关于javascript - "display: none"div 中的图像未加载 onpageload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22031163/