Sto scrivendo un sito utilizzando jquery che richiama ripetutamente $(window).width()
e $(window).height()
per posizionare e dimensionare gli elementi in base alle dimensioni del viewport.
Durante la risoluzione dei problemi ho scoperto che sto ottenendo rapporti sulle dimensioni del viewport leggermente diversi nelle chiamate ripetute alle funzioni jquery di cui sopra quando il viewport non viene ridimensionato.
Chiedendosi se c'è qualche caso speciale che qualcuno sappia quando questo accade, o se è proprio così. La differenza nelle dimensioni riportate è di 20 px o meno, a quanto pare. Succede in Safari 4.0.4, Firefox 3.6.2 e Chrome 5.0.342.7 beta su Mac OS X 10.6.2. Non ho ancora testato altri browser perché non sembra essere specifico per il browser. Non sono stato nemmeno in grado di capire da cosa dipende la differenza, se non è la dimensione del viewport, potrebbe esserci un altro fattore che differenzia i risultati?
Qualsiasi intuizione sarebbe apprezzata.
aggiornare:
Non sono i valori di $(window).width()
e $(window).height()
che stanno cambiando. Sono i valori delle variabili che sto usando per memorizzare i valori di cui sopra.
Non sono le barre di scorrimento che influenzano i valori, nessuna barra di scorrimento appare quando i valori delle variabili cambiano. Ecco il mio codice per memorizzare i valori nelle mie variabili (cosa che sto facendo solo in modo che siano più brevi).
(tutto questo è dentro $(document).ready()
)
// inizialmente dichiara le variabili come visibili ad altre funzioni all'interno .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()
Ho inserito un'istruzione di avviso per sondare le variabili sopra rispetto ai valori che dovrebbero contenere. I $(item).param()
valori rimangono coerenti, ma le mie variabili cambiano per motivi che non riesco a capire.
Ho cercato luoghi in cui il mio codice potrebbe alterare il valore delle variabili in questione, invece di recuperare semplicemente i valori impostati e non trovarne nessuno. Posso postare l'intera faccenda da qualche parte se è possibile.