0

現在のビューポートサイズに基づいて、JavaScriptで画像のサイズを変更しています。メディアクエリなどはありません。JSはずっとありません。要素の静的サイズもありません。

つまり、基本的には次のようになります。

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

3 に答える 3

2

他の人が言ったように、画像がドキュメントに挿入される前にサイズを取得することはできません。

ただし、サイズは自分で計算できます。

画像が読み込まれると、画像の元のサイズにアクセスできます。これに基づいて、スケーリングされたサイズを計算することはそれほど難しくありません。

    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);        
    }
});
于 2012-11-14T20:17:00.087 に答える
1

画像が表示されたら、次のプロパティをクエリしてみてください

image.offsetWidth
image.offsetHeight
于 2012-11-14T19:18:30.143 に答える
1

goog.style.getComputedStyle(image、'width')を試してください。おそらく、最初にそれをドキュメントに追加する必要があります。

于 2012-11-14T19:20:41.023 に答える