12

この質問と同様に: jQueryでCSSルールのパーセンテージ値を取得します

しかし、私はプラグインを書いているので、幅が最初にどのように指定されたかに応じて、プラグインを適切に処理する必要があります。要素が元々ピクセルで指定されていた場合は、、、、およびが返す値である.width()ため.innerWidth()、問題ありません。outerWidth().css('width')

しかし、それが元々の設定であったかどうかをパーセンテージで知りたいのですが。そのため、コンテナ要素のサイズが変更された場合、要素に設定した幅を再計算することがわかります。

これは可能ですか?私が考えることができる唯一のことは、関連するルールを探してdocument.stylesheetsをループしようとすることですが、それを一般的に行うことは多かれ少なかれ不可能だと思います。他のアイデアはありますか?

ありがとう!

4

2 に答える 2

4

それは.css('width')私にとってはうまくいくようです。

この作品を示す小さな例:

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>

<div style="width:10%;" id="foo"></div>
<script>
alert($("#foo").css('width'));
</script>

</body>
</html>

これにより、「10%」の出力が得られます。明らかなことを見逃さなかったといいのですが。

于 2010-08-21T11:20:35.090 に答える
2

質問で求めたことを実行する方法が見つかりませんでしたが、自分の状況で必要なことを実行できる回避策を考え出しました。問題のコードは、jScrollPane(http://jscrollpane.kelvinluck.com/)と呼ばれる私のjQueryプラグイン用です。最後に、幅をnull(elem.css('width', null);)に設定します。これにより、以前に設定した幅が削除され、要素がスタイルシートで定義されている自然な幅を使用できるようになります(つまり、定義された方法である場合はパーセンテージを使用します)。次に、この新しい値を測定し、それを使用して幅を希望の数に設定できます...

于 2010-08-22T21:48:52.600 に答える