2013-06-03 19 views
8

jqueryで画像ギャラリーを作成しています。 jqueryを使用して画像が横長か縦長かを計算する方法はありますか?画像が横長か縦長かを計算する方法

ご協力いただきありがとうございます。

+0

高さ/幅の比率を確認しますか?何を試しましたか? – JNF

+2

'幅が長ければ横長、それ以外は縦長' –

+0

@Christianマークありがとう、クリスチャンマーク – geovani075

答えて

17

画像の幅と高さを簡単に比較できます。 javascript関数以下

var someImg = $("#someId"); 
if (someImg.width() > someImg.height()){ 
    //it's a landscape 
} else if (someImg.width() < someImg.height()){ 
    //it's a portrait 
} else { 
    //image width and height are equal, therefore it is square. 
} 
2

function get_orientation(src){ 

img = new Image(); 
img.src = src; 
var width = img.width; 
var height = img.height; 
height = height + height // Double the height to get best 
//height = height + (height/2) // Increase height by 50% 

if(width > height) { 
return "landscape"; 
} else { 
return "portrait"; 
} 

} 
+0

これは画像が既にUIに読み込まれていることを前提としています。実際に比率を計算する前にイメージのロードイベントがトリガーするのを待つべきではありませんか? –

+1

なぜ "height = height + height //最高になるように高さを2倍にするか"? –

0

最適なオリエンテーションを返します。これは、元のプロパティを取得するために、天然の高さ/幅を使用して、私のために働きました。

 function imageOrientation(src) { 

      var orientation, 
      img = new Image(); 
      img.src = src; 

      if (img.naturalWidth > img.naturalHeight) { 
       orientation = 'landscape'; 
      } else if (img.naturalWidth < img.naturalHeight) { 
       orientation = 'portrait'; 
      } else { 
       orientation = 'even'; 
      } 

      return orientation; 

     } 
関連する問題