当一个div被隐藏(display:none)时,浏览器将不会加载它里面的图像。有办法告诉浏览器加载图像吗?,我需要图像的高度和宽度来做一些预处理。
注意:由于一些其他代码,我无法使div可见。检查这里的示例。另外,一个“懒惰负载”的例子对我来说是行不通的。
发布于 2011-01-31 15:14:14
我添加了一些预压,将其包装成一个函数,这就实现了这样的目的:
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;
}可用作:
getImageDimension($('#img1'), function(d){ alert(d.height); });
var url = 'http://urology.jhu.edu/patrickwalsh/photo1.jpg';
getImageDimension(url, function(d){ alert(d.height); });发布于 2011-01-31 13:33:28
使div可见,但使用position: absolute;将其放置在页面外部。
如果您的“其他代码”也不允许这样做,创建一个具有相同URL的新图像节点,将其放置在页面之外,等待加载,读取其高度并销毁。
发布于 2011-01-31 13:34:17
https://stackoverflow.com/questions/4851395
复制相似问题