2011-11-14 11 views
1

CSSプロパティを使用して計算をしようとしていますが、何も返しません。jQueryとCSSプロパティを使って計算する

私は、CSSプロパティが単に '200'ではなく '200px'を返している可能性があると思います。誰もが回避策を提案できますか?どうもありがとう。

windowHeight = $(window).height(); // This works 
logoHeight = $('.home h1').css('height'); // This returns '200px' 
logoPosition = windowHeight * 0.5 - logoHeight; 
+0

あなたは、CSSから要求した値を使用すると、JSのyuorselfを経由して、これを交換したり、数を解析する必要がある「PX」を含む文字列です。 – Smamatti

+1

javascriptよりも垂直にセンタリングする方が良い方法があることに注意してください。 – Eric

答えて

1

はここ

windowHeight = $(window).height(); // This works 
logoHeight = $('.home h1').css('height'); // This returns '200px' 
logoPosition = windowHeight * 0.5 - parseInt(logoHeight); 
+0

ありがとうございます。これは私が問題を理解するのに役立ち、他のCSSを整数に配置する方法として最も有用でした。 – SparrwHawk

5

"200px"文字列を整数に変換する必要があります。 windowHeight * 0.5 - logoHeightNaN(非数)を返しているそうでなければ、あなたの合計を

windowHeight = $(window).height(); // This works 
logoHeight = parseInt($('.home h1').css('height'), 10); // This returns '200px' 
logoPosition = windowHeight * 0.5 - logoHeight; 

parseIntを使用。

には常にが重要で、parseIntの2番目のパラメータとして基数を指定するか、次のようなものがあります。

parseInt("022") == 18; // true 
3

あなただけ<h1>要素にheight()を使用することができるはずです。

windowHeight = $(window).height(); // This works 
logoHeight = $('.home h1').height(); 
logoPosition = windowHeight * 0.5 - logoHeight; 
+0

これは 'css( 'height')'を使うよりも優れています。なぜなら、あなたはjQueryをより良く使うからです。 – HerrSerker

+0

これは素晴らしいことです。私はこれを将来使用します。 – SparrwHawk

0

が他のCSSを使用する方法をお見せするためにいくつかの他の例であり、これを試してみてくださいプロパティとjQueryメソッド。 Check our jQuery style properties

var element = $('#element'); 
var borderLeftWidth = parseInt(element.css('borderLeftWidth'), 10); // css border-left-width 
var borderRightWidth = parseInt(element.css('borderRightWidth'), 10); // css border-right-width 
var fullWidth = element.outerWidth(false); // includes padding and border but not margins 
関連する問題