Get the clientWidth and clientHeight of resized im

2019-08-30 09:15发布

I am resizing an image in JavaScript based on the current viewport size. No media queries and other such things, JS all the way, and no static sizes for elements.

So basically it looks something like this:

    var computedHeight = viewport.height * someRatio;
    var image = goog.dom.createDom('img', {
        'src': 'the.link.to.the.image',
        'height': computedHeight + 'px',
        'width': 'auto'
    };

3条回答
Animai°情兽
2楼-- · 2019-08-30 09:26

Try goog.style.getComputedStyle(image, 'width'). Probably you'll need to add it to the document first.

查看更多
聊天终结者
3楼-- · 2019-08-30 09:28

As the others said, you can't get the size before the image has been inserted into the document.

But you can calculate the size on your own.

When the image has been loaded, you may access the original size of the image. Based on this it's not very difficult to calculate the scaled size:

    var image = goog.dom.createDom('img', {
    'src': 'the.link.to.the.image',
    'height': computedHeight + 'px',
    'width': 'auto',
    'onload':function(){
      alert('width:'+
            Math.floor((this.naturalWidth*this.height)/this.naturalHeight)+
            '\nheight:'+this.height);        
    }
});
查看更多
小情绪 Triste *
4楼-- · 2019-08-30 09:28

After the image has been displayed try querying the following properties

image.offsetWidth
image.offsetHeight
查看更多
登录 后发表回答