【发布时间】:2011-11-02 08:55:45
【问题描述】:
我正在编写一个函数来测试滚动条位置与我存储在数组中的预定义元素位置。页面上可以有任意数量的这种元素类型,这就是我使用 for 循环来测试滚动条位置的原因。
这段代码在 Firefox 中运行良好,但由于某种原因,jQuery 在 Chrome 中为我的每个 .post-info ($pi) 项目返回完全不同的位置,甚至导致 $(document).height 错误。这是我的javascript还是我的css的问题?我将假设我的 JS 已经测试了我的位置:相对于我的 css 中的大多数元素。
这是我正在运行的 jQuery:
(function(){
var i,
st,
length,
arrPos = []
$wn = $(window);
$pi = $('.post-info');
$pi.each(function(){
arrPos.push($(this).offset().top - 80); // offset -80 so new item sticks quicker.
});
height = $(document).height();
arrPos.push(height); // add bottom position of document to array for last item.
length = arrPos.length;
$wn.scroll(function(){ //Scroll Event Listener
st = $wn.scrollTop();
for(i=0; i<=length; i++){
// i = index, n = next
n = i+1;
if(st > arrPos[i] && st < arrPos[n]) _stick(i);
}
});
非常感谢。
【问题讨论】:
标签: jquery css google-chrome scroll height