左右の現在の距離を取得することは可能ですか?全幅ではありません。
1 に答える
window.innerWidth
スクロールバー(存在し、レンダリングされている場合)を含むブラウザウィンドウのビューポート幅を取得するために使用できます。
document.body.clientWidth
スクロールバー、マージン、境界線、またはパディングを含まないものもあります。後者の3つは、リセットスタイルシートを使用する場合のように、margin:0; padding:0;
境界線が設定されていない場合は関係ありません。body
それ以外の場合は、これらを補う必要があります。
ノート:
clientWidth
、すべての主要なブラウザ(IE 5.5 +、FF3 +、Chrome、Opera、Safari)でサポートされているにもかかわらず、W3Cで定義されたことがないため、ブラウザのサポートは異なる場合があります。window.innerWidth
W3C仕様がありますが、IE<9ではサポートされていません。
これが両方を比較するフィドルです。
編集: IE <9ではサポートされていないため、と(古いIEの場合)をwindow.innerWidth
組み合わせて使用するのがおそらく最良のアプローチです。innerWidth
clientWidth
var viewportWidth = window.innerWidth || document.body.clientWidth;
また、clientWidth
W3Cで標準化されていなくても、すべての主要なブラウザでサポートされているため、多くの人がclientWidth
W3C標準の代わりに単独で使用するのに十分な信頼性があると感じていinnerWidth
ます。
ユースケースでスクロールバーを含めないことが重要な場合はclientWidth
、最初の/唯一のオプションとして使用できます。
var viewportWidth = document.body.clientWidth; //no scrollbars included
上記を使用する場合は、body
持っているmargin:0
ことを確認してください。padding:0