.width()
で取得できる。
var width = $(window).width();
$(window).width();
で取得できる値は表示されているエリアのサイズになります。
Y方向にスクロールがあるページの時、これで取れるwidthにはスクロールバーの幅は含まれないっぽいです。
レスポンシブなサイトなどで、サイズに合わせて$(window).on('resize')
などで処理を行う時にスクロールバーの幅を含む/含まないでCSS3のMedia Queries(メディアクエリ)で指定しているwidthとjavascriptの処理がズレてしまう場合があります。
スクロールバーの幅も含んだウィンドウサイズを取得
(ブラウザとバージョンによって微妙に異なるかも知れません...
var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth
window.innerWidth
はスクロールバーの幅も含んだ値が取れるっぽいです。
このプロパティが無いブラウザの時はdocument.documentElement.clientWidth
又はdocument.body.clientWidth
を使いますが、この値は$(window).width()と同じでスクロールエリアの幅を含まないっぽいです。
※ google Chromeで確認しました。
JavaScriptリファレンス - 画面操作 window.innerWidth
JavaScriptリファレンス - 画面操作 document.body.clientWidth
追記:
スクロールバーの幅を含むと書きたい所をスクロールエリアと書いてしまっていました。
かなり意味が変わってきますよね、、、
スクロールバーの幅ではなくX方向のスクロールで隠されている領域をwidthを取得するには
var sW = document.body.scrollWidth || document.documentElement.scrollWidth;
とするのが良さそうです。