私は繰り返し呼び出すjqueryの使用してサイトを書いています$(window).width()
し、$(window).height()
ビューポートのサイズに基づいて、位置や大きさの要素にします。
トラブルシューティングで、ビューポートのサイズが変更されていないときに、上記のjquery関数を繰り返し呼び出すと、わずかに異なるビューポートサイズレポートが表示されることがわかりました。
これがいつ起こるか誰もが知っている特別なケースがあるのか、またはこれがまさにその通りであるのか疑問に思います。報告されているサイズの違いは20px以下であると表示されます。Mac OS X 10.6.2のSafari 4.0.4、Firefox 3.6.2、Chrome 5.0.342.7ベータで発生します。他のブラウザーはブラウザーに固有のものではないため、まだテストしていません。私はまた、違いが何に依存するかを理解することができませんでした。それがビューポートのサイズでない場合、結果を異なるものにする別の要因があるのでしょうか?
どんな洞察もいただければ幸いです。
更新:
これは、の値ではない$(window).width()
と$(window).height()
変化しています。上記の値を格納するために使用している変数の値です。
値に影響を与えるのはスクロールバーではなく、変数の値が変更されてもスクロールバーは表示されません。これが、変数に値を格納するためのコードです(これは、値を短くするためです)。
(これはすべて内にあります$(document).ready()
)
//最初に、他の関数から見えるように変数を宣言します .ready()
var windowWidth = $(window).width(); //retrieve current window width
var windowHeight = $(window).height(); //retrieve current window height
var documentWidth = $(document).width(); //retrieve current document width
var documentHeight = $(document).height(); //retrieve current document height
var vScrollPosition = $(document).scrollTop(); //retrieve the document scroll ToP position
var hScrollPosition = $(document).scrollLeft(); //retrieve the document scroll Left position
function onm_window_parameters(){ //called on viewer reload, screen resize or scroll
windowWidth = $(window).width(); //retrieve current window width
windowHeight = $(window).height(); //retrieve current window height
documentWidth = $(document).width(); //retrieve current document width
documentHeight = $(document).height(); //retrieve current document height
vScrollPosition = $(document).scrollTop(); //retrieve the document scroll ToP position
hScrollPosition = $(document).scrollLeft(); //retrieve the document scroll Left position
}; //end function onm_window_parameters()
上記の変数を、それらが保持しているはずの値と照らし合わせて調査するために、アラートステートメントを挿入しました。$(item).param()
値は、一貫性のあるとどまるが、私の変数は、私は理解できない理由のために変更します。
私は、コードが問題の変数の値を変更している可能性がある場所を探しましたが、それらの設定値を取得するだけで何も見つけることができません。可能であれば、シバン全体をどこかに投稿できます。