0

我试图让一个 div 滚动到视图之外。

var jQ = jQuery.noConflict();

jQ(document).ready(function() {

  var win = jQ(window);
  var navTop = jQ('#navbar').offset().top;

  win.scroll(function() {
    jQ('#navbar').toggleClass('sticky', win.scrollTop() > navTop);
  });

});

问题是使用此代码时,navTop 计算不正确。如果我在滚动函数中计算 navTop,它会按预期工作,但会产生可怕的闪烁效果,我认为这是由于多次重新计算值造成的。

为什么加载文档后无法正确计算值?

4

1 回答 1

2

我用来解决这个问题的方法是触发另一个滚动事件来计算 navTop 变量,现在它可以正常工作了。

最终代码:

var jQ = jQuery.noConflict();

jQ(document).ready(function() {

  var win = jQ(window);
  var navTop;

  jQ(document).one("scroll", function() {

    navTop = jQ('#header').offset().top;

  });

  win.scroll(function() {

    jQ('#navbar').toggleClass('sticky', win.scrollTop() > navTop);

  });

});
于 2013-09-16T22:49:05.100 回答