javascript - "display: none"div 中的图像未加载 onpageload

标签 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


编辑2:

好吧,我想我知道问题的根源是什么。图像在屏幕上可见之前不会加载到页面中(我将它们放在显示设置为无加载的选项卡 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/

上一篇:php - 推特 API 推文

下一篇:php - 最后一行仍然显示 <div>

相关文章:

html - 无法使用 CSS grid/grid-template-area 布局页面

html - 如何在每个屏幕分辨率上固定图像?

javascript - 无法从其他 Javascript 文件访问变量

javascript - 任务 ':react-native-device-info:processReleaseResources' 执行失败

jquery - 失去焦点时自动完成检查

php - 在 ajax 调用 jquery 函数后无法正常工作

javascript - 写入 Firestore 数据库会导致 Firestore net::ERR_BLOCKED_BY_CLIENT 错误

javascript - 高亮文本问题

javascript - 客户端向服务器请求无响应

html - 无法在字段集顶部留出 <legend>