【问题标题】:How to add a class remove a class on reaching a specific div (overflow hidden)如何在达到特定 div 时添加类删除类(溢出隐藏)
【发布时间】:2013-12-01 05:35:10
【问题描述】:

我正在使用 fullpage.js 开发一个整页网站。我有一个固定的导航栏。我想通过添加和删除 css 类来更改导航栏上的徽标。我试过这段代码:

function sticky_relocate() {
  var window_top = $(window).scrollTop();
  var div_top = $('#sticky-anchor').offset().top;
  if (window_top > div_top)
    $('#sticky').addClass('stick')
  else
    $('#sticky').removeClass('stick');
}

$(function() {
  $(window).scroll(sticky_relocate);
  sticky_relocate();
});

但它不起作用可能是因为在 fullpage.js 中使用了溢出:隐藏并且 $(window).scrollTop() 始终给出 0 值。

任何人有任何解决方案(我是 jquery 的新手)?

编辑:如果我不使用 fullpage.js 插件,代码可以正常工作。 fullpage.js 在 body 标签中使用 overflow:hidden 和 position:relative 来隐藏滚动条。示例网站http://alvarotrigo.com/fullPage/

【问题讨论】:

标签: javascript jquery html css fullpage.js


【解决方案1】:

可能是滚动条不在body上,而是在另一个元素上,如果是这样的话:

直接在滚动条上使用inspect元素找出哪个元素有滚动条。

然后获取(带有滚动条的元素).scrollTop() 而不是 window.scrollTop()

替换

var window_top = $(window).scrollTop();

var withScrollbar = $('#elementWithScrollbar');
var window_top = $(withScrollbar).scrollTop();

【讨论】:

  • 我已编辑我的帖子以获得更多说明。请看一看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
相关资源
最近更新 更多