jquery $ (window) .width () und $ (window) .height () geben unterschiedliche Werte zurück, wenn die Größe des Ansichtsfensters nicht geändert wurde

Ich schreibe eine Site mit jquery, die wiederholt @ aufruf$(window).width() und$(window).height(), um Elemente basierend auf der Größe des Ansichtsfensters zu positionieren und deren Größe zu bestimmen.

Bei der Fehlerbehebung habe ich festgestellt, dass bei wiederholten Aufrufen der obigen jquery-Funktionen geringfügig unterschiedliche Größenberichte für Ansichtsfenster angezeigt werden, wenn die Größe des Ansichtsfensters nicht geändert wird.

Frage mich, ob es einen speziellen Fall gibt, von dem jemand weiß, wann dies geschieht, oder ob dies einfach so ist. Die angegebenen Größenunterschiede betragen anscheinend 20px oder weniger. Dies geschieht in Safari 4.0.4, Firefox 3.6.2 und Chrome 5.0.342.7 Beta unter Mac OS X 10.6.2. Ich habe noch keine anderen Browser getestet, da es nicht spezifisch für den Browser zu sein scheint. Ich konnte auch nicht herausfinden, wovon der Unterschied abhängt. Wenn es nicht die Größe des Ansichtsfensters ist, könnte es einen weiteren Faktor geben, der die Ergebnisse unterschiedlich macht?

eder Einblick wäre willkomme

aktualisieren

Es sind nicht die Werte von$(window).width() und$(window).height() das ändert sich. Es sind die Werte der Variablen, die ich verwende, um die Werte der oben genannten zu speichern.

Es sind keine Bildlaufleisten, die sich auf die Werte auswirken. Wenn sich die Variablenwerte ändern, werden keine Bildlaufleisten angezeigt. Hier ist mein Code zum Speichern der Werte in meinen Variablen (was ich gerade mache, damit sie kürzer sind).

(all dies ist innerhalb von$(document).ready())

// deklariert die Variablen zunächst so, dass sie für andere Funktionen in @ sichtbar sin.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()

Ich habe eine Alert-Anweisung eingefügt, um die obigen Variablen mit den Werten zu vergleichen, die sie enthalten sollen. Das$(item).param() -Werte bleiben konsistent, aber meine Variablen ändern sich aus Gründen, die ich nicht herausfinden kann.

Ich habe nach Stellen gesucht, an denen mein Code möglicherweise den Wert der fraglichen Variablen ändert, anstatt nur die eingestellten Werte abzurufen und keine zu finden. Ich kann den ganzen Shebang irgendwo posten, wenn das eine Möglichkeit ist.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage