与 FF 和 IE 相比,jQuery 在 Chrome 中返回错误的元素位置

标签 jquery css google-chrome scroll height

我正在编写一个函数来根据我存储在数组中的预定义元素位置来测试滚动条位置。页面上可以有任意数量的这种元素类型,这就是我使用 for 循环来测试滚动条位置的原因。

此代码在 Firefox 中运行良好,但由于某些原因,jQuery 在 Chrome 中为我的每个 .post-info ($pi) 元素返回完全不同的位置,甚至错误地获取 $(document).height。这是我的 javascript 还是我的 css 的问题?当我测试我的 position:relative 在我的 css 中的大多数元素时,我会假设我的 JS。

这是我正在运行的 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);
    }
});

非常感谢。

最佳答案

Google Chrome 在 $(document).ready 之后设置高度和宽度 如果您有任何图片,那么此时您的页面尺寸将不合适。尝试先预加载图像,完成后再调用函数。 希望这有帮助:)

关于与 FF 和 IE 相比,jQuery 在 Chrome 中返回错误的元素位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168576/

相关文章:

jquery - 如何根据CSS中的父级缩放文本

javascript - 为什么在 jquery 中成功调用 ajax 后不加载此函数?

html - 在不移动元素的情况下计算出网格元素

javascript - 三个按钮和左下角(.link div)一直隐藏到 i "inspect element"(在 Chrome 中),然后它们立即出现。为什么?

javascript - JQuery获取同名属性值

jquery - SlideUp() 导致元素消失(在 IE10 中)

css - 如何使用 CSS 在前景图像上显示背景图像

javascript - 如何从 div 内的表创建数据表 gridview

javascript - jQuery 的 attr() 在 chrome 中一步步调试时失败

javascript - 当浏览器已经处于全屏模式时,Chrome 在按下 F11 键时吃掉 javascript keydown 事件处理程序