【问题标题】:addClass after timeout when user scrolls to bottom of page用户滚动到页面底部时超时后的addClass
【发布时间】:2015-06-26 04:32:24
【问题描述】:

我在这里有一个 jQuery/javascript 代码,我想在上面设置一个计时器。

$(window).scroll(function(){
  var scroll = $(window).scrollTop();
  var sheight = $(window).height();
  var dheight = $(document).height();

  if (scroll+sheight == dheight) {
    $(".footer").addClass('footer-show-all');
  } else {
    $(".footer").removeClass('footer-show-all');
  }
}, 500);

代码本身有效!它在一般滚动时仅显示我的页脚的 20 像素,并在您到达底部时显示全部。但底部似乎上升得太快了。那么为什么这个计时器不起作用呢?



另外,我的页面分为三个不同的部分(页眉、主页和页脚)。除了一部分之外,我的页面中的每一件事都运行良好……我的内容滑过我的菜单。但我希望我的菜单始终在前面。

jsFiddle

提前感谢您的帮助,请不要过分抨击我.. 仍然在这里学习!

【问题讨论】:

  • 感谢 blex 的编辑。
  • 是的,抱歉,这与个人无关,但人们正在此站点上寻找答案并希望轻松找到它们。不过,可以将有关您的详细信息添加到您的个人资料中:) PS:您的 jsFiddle 导致错误(通过点击 F12 打开您的 JS 控制台),因为您没有定义 $.cookie 插件。我在这里添加了它:jsfiddle.net/1svp87dk
  • 不,我明白了!再次感谢。是的,我忘了把它拿出来。感谢您的提示(jsFiddle)。

标签: javascript jquery html css


【解决方案1】:

那么为什么这个计时器不起作用呢?

因为这不是计时器,而且不是有效代码,即使没有出现错误。 jQuery's .scroll() 没有 delay 参数。

该延迟可以添加到您的 CSS 中:

.footer-show-all {
    /* keep your existing styles here */
    -webkit-transition-delay: .5s;
    transition-delay: .5s;
}

Demo


或者你的 JS,使用 setTimeout:

var timer;

$(window).scroll(function(){
    clearTimeout(timer); // Will avoid launching tons of timers every time you scroll
    timer = setTimeout(function(){
        var scroll = $(window).scrollTop(),
            sheight = $(window).height(),
            dheight = $(document).height();
        $(".footer").toggleClass('footer-show-all', (scroll+sheight == dheight));
    }, 500);
});

Demo


我的内容滑过我的菜单。

那是因为您的 #headerz-index 为 -10,而您的内容为 10。如果您希望菜单始终位于顶部,则要么整个标题必须位于顶部,要么菜单必须位于顶部在标头之外,并且z-index 超过 10。

【讨论】:

  • 哇,真不敢相信我错过了我的标题和菜单。感谢您对 jQuery 的解释。我不知道这在 .scroll 上不起作用!感觉很好学习!
  • @Marciano' 没问题,我总是很乐意提供帮助!我对JS部分做了一点改动,请看一下。
  • 我看了,想向你致敬。我之前一直在考虑使用切换,但我还没有学会如何合并 scroll+sheight==dheight 部分。现在多亏了你,我学会了!忍不住感谢你,我想哈哈!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
相关资源
最近更新 更多