向下滚动时,Sticky Header跳跃

时间:2014-10-04 17:11:18

标签: javascript jquery html css

我有一个奇怪的问题。我想给我一个粘头。在互联网上,我发现一些实例也在运行,现在我已经在我的网站上实现了。现在是这样,当我来到高峰时,那里的"固定"设置位置然后内容跳跃。

这是我的javascript:

$(window).scroll(function()
{
  // This is the value from which the content (gridViewTop) should be sticked
  var objectheight = $('header').height();
  if( $(window).scrollTop() > objectheight )
  {
    $('#gridViewTop').css({position: 'fixed'});
    $('#gridViewTopPH').css({display: 'block'});
  } 
  else 
  {
    $('#gridViewTop').css({position: 'static', top: '0'});
    $('#gridViewTopPH').css({display: 'none'});
  }
});

有一件事:我接受了价值(物品高度),因为我也想在移动设备上使用它,并且用户可能会扩展菜单,然后价值会大于默认值。

(可以在移动设备上使用它吗?)

这里有一个小提琴: http://jsfiddle.net/vjb1ag27/

但我想要一个滚动滚动。

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:2)

实际上,由于应用于 p 标签的边距,会有一点跳跃。

因此,当您致电if( $(window).scrollTop() > 对象高度为40像素时,实际上会有10px的间隙导致该跳跃。

您可以通过css减少p margin或将该margin值分配给 objectheight

http://jsfiddle.net/carlodurso/vjb1ag27/1/

答案 1 :(得分:0)

这可能不适用于移动设备,因为“滚动”事件只会在滚动完全停止在移动设备上后触发一次。所以它会有点'跳跃'。您需要的是第三方库来处理滚动事件,例如iscroll