我正在编写一个使用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 beta中。我尚未测试其他浏览器,因为它似乎并不是特定于该浏览器的。我也无法弄清差异取决于什么,如果不是视口大小,是否还有其他因素会使结果有所不同?
任何见识将不胜感激。
更新:
这不是值$(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()
值保持一致,但由于无法弄清的原因,我的变量发生了变化。
我一直在寻找我的代码可能正在更改有关变量的值的地方,而不是仅检索它们的设置值而找不到任何地方。如果可能的话,我可以将整个shebang发布到某个地方。