首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得隐藏图像的高度?

如何获得隐藏图像的高度?
EN

Stack Overflow用户
提问于 2011-01-31 13:31:17
回答 5查看 3.3K关注 0票数 3

当一个div被隐藏(display:none)时,浏览器将不会加载它里面的图像。有办法告诉浏览器加载图像吗?,我需要图像的高度和宽度来做一些预处理。

注意:由于一些其他代码,我无法使div可见。检查这里的示例。另外,一个“懒惰负载”的例子对我来说是行不通的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-01-31 15:14:14

我添加了一些预压,将其包装成一个函数,这就实现了这样的目的:

代码语言:javascript
运行
复制
function getImageDimension(el, onReady) {    
    var src = typeof el.attr === 'function' ? el.attr('src') : el.src !== undefined ? el.src : el;

    var image = new Image();
    image.onload = function(){
        if(typeof(onReady) == 'function') {
            onReady({
                width: image.width,
                height: image.height
            });
        }
    };
    image.src = src;
}

可用作:

代码语言:javascript
运行
复制
getImageDimension($('#img1'), function(d){ alert(d.height); });
var url = 'http://urology.jhu.edu/patrickwalsh/photo1.jpg';
getImageDimension(url, function(d){ alert(d.height); });
票数 4
EN

Stack Overflow用户

发布于 2011-01-31 13:33:28

使div可见,但使用position: absolute;将其放置在页面外部。

如果您的“其他代码”也不允许这样做,创建一个具有相同URL的新图像节点,将其放置在页面之外,等待加载,读取其高度并销毁。

票数 4
EN

Stack Overflow用户

发布于 2011-01-31 13:34:17

您可以尝试使用jquery预加载图像-请查看以下内容:

用jQuery预压图像

这应该在您决定显示它们之前预先加载它们。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4851395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档