2011-07-28 14 views
8

width CSSプロパティが 'auto'に設定されている要素の幅をピクセル単位で調べる必要があります。 element.style.widthを試しましたが、 'auto'が返されたため動作しませんでした。 jquery関数width()がpxの長さを返すことに気付きましたが、私のページでは使用できないため、これを解決するためにjqueryを使用することはできません。だから、誰もjquery width()の等価なメソッドを知っていますか?jquery width()のJavaScript相当値

ありがとうございました。

+1

おそらく関連:[すべてのJSの高さの詳細については、クイック資源](http://stackoverflow.com/questions/6826758/quick-resource-to-learn-more- about-all-the-js-height/6826798#6826798)。 – jensgram

+2

[jQueryソース](http://code.jquery.com/jquery-1.6.2.js)の 'getWH()'関数は実装を明らかにするでしょう。 ( 'name =" width "'と呼ばれます) – jensgram

答えて

2

基本的には.offsetWidthになりますが、jQueryコードはブラウザ間の違いによって少し複雑です。

+1

これはさまざまなブラウザでは違った方法で実装されていますので、jQueryと同様にテストされたものを使用すると意味があります.. – Tigraine

12

jQueryの...内部

element.getBoundingClientRect().width 

を使用して、それがブラウザの違いに対処する上でいくつかの他のものを持っています。

要素のレンダリングサイズを返します.offsetxxは、ボックスモデルに従ってサイズを返します。

element.getBoundingClientRect() 

「実際」の要素を取得する最も正確な方法です。

ここでは、John Resigの投稿(jQueryの著者)が問題になっています。

+0

実際には非常に頻繁に '$ el.width 'el.getBoundingClientRect()。width'は、最新のFirefoxとChromeの両方で、jQuery 2.1.4を使用して正しい値を与えてくれますが、' $ el.outerWidth() 'は私にゼロを返します。 –

関連する問題