2017-04-12 20 views
-1

画像がレンダリングされる前に画面の解像度に応じて画像のサイズがどのように計算/見積もられるのでしょうか?私は正直であるためにコードではなく、より論理的な助けが必要です。計算には何が必要ですか?レンダリング前の画面サイズで画像の大きさを計算する

画像サイズ:450px * 800ピクセル

ウィンドウのサイズ:* 728px 424px

画像は* 239px 424pxになるように動作します。コード内でこれを計算する必要があるので、後に続く他の要素(絶対/固定要素)の位置を調整できます。

私がこれまで行ってきたことは、

var ratio1 = (this.retrievedNewsArticle.featuredImage.width/this.retrievedNewsArticle.featuredImage.height); 
var ratio2 = ($(window).innerWidth()/this.retrievedNewsArticle.featuredImage.width); 

// Ratio 1 = 424 
// Ratio 2 = 0.53 

次は何ですか?

+0

ロジックは、画像424を作成するため、現在あります* 239?画像がWindowsのサイズに合っているのを見て、画像の縮尺をそれに合わせるCSSやJavaScriptがあります。おそらく、あなたはこのすべてを計算するのではなく、そのセクションでいくつかの魔法を働かせるべきでしょう。 – Glubus

+0

@Glubus:縦横比のように見えます。明示的に言えば、より良いでしょう。 –

+1

あなたの投稿が混乱しています。まず「画像が読み込まれる前に」言い、「HTMLをレンダリングする前にこれを計算する必要がある」と言います。どちらですか? – rottenoats

答えて

2

イメージのサイズがわかっているように聞こえますが、イメージがウィンドウの全幅になるように聞こえますが、イメージの高さを決定する方法を知る必要があります。

var renderedWidth = imageWidth; 
var renderedHeight = imageHeight * (windowWidth/imageWidth); 

アスペクト比を維持する。もしそうであれば、目標の高さは像高時間は、画像の幅で割った窓幅です。

これは、画像が常に画面よりも広いと仮定しています。その前提を取り除きましょう。

あなたは画像を埋めるためにストレッチする場合:あなたは画像を埋めるためにストレッチしたくない場合は

var renderedWidth, renderedHeight; 
if (windowWidth >= imageWidth) { 
    renderedWidth = imageWidth * (windowWidth/imageWidth); 
} else { 
    renderedWidth = imageWidth; 
} 
renderedHeight = imageHeight * (windowWidth/renderedWidth); 

を:

var renderedWidth, renderedHeight; 
if (windowWidth >= imageWidth) { 
    renderedWidth = imageWidth; 
    renderedHeight = imageHeight; 
} else { 
    renderedWidth = imageWidth; 
    renderedHeight = imageHeight * (windowWidth/imageWidth); 
} 
+0

これを考慮する必要があるのか​​どうかわからないが、「HTMLをレンダリングする前にこれを計算する必要がある」と言いましたが、スクリプトをどこに追加したのかは不明です。そうでなければ+1 – rottenoats

+0

'var renderedHeight = imageHeight *(windowWidth/imageWidth);'は私が必要とした数学でした。私は質問を正しく一緒に言葉を入れないかもしれませんが、それは私が探していたものです。 –

関連する問題