【问题标题】:window scroll to detect footer animation窗口滚动以检测页脚动画
【发布时间】:2013-10-09 21:48:59
【问题描述】:

我试图让我的页脚在用户向下滚动时进行动画处理,然后在用户滚动到顶部时进行动画处理。

当您向下滚动时,我的代码似乎适用于页脚动画,但当您返回顶部时却不行。

此外,我尝试将其设置为在您从顶部向下滚动 400 像素时设置动画,但出于某种原因,动画会在您滚动的那一刻发生。

$(function(){
  $(window).scroll(function(){
    if ($(window).scrollTop()<400){
        $("#footer").animate({"bottom" : "0px"}, 3000);
    }else if($(window).scrollTop()>400){
        $("#footer").animate({"bottom" : "-150px"}, 1500);
    }
  });
});

欢迎大家帮忙。

【问题讨论】:

  • 是 $("#footer").animate({"bottom" : "0px"}, 3000);显示或隐藏页脚?
  • 它在 0px 处显示页脚,在 -150 px 处显示页脚。
  • 刚刚搞砸了脚本并删除了else if 语句,只使用了else。我无法使用 JS fiddle,但它似乎在 W3 学校“自己尝试”代码框中工作。

标签: jquery animation scrolltop


【解决方案1】:

在你的代码中你说

 $(window).scroll(function(){
   if ($(window).scrollTop()<400){
      $("#footer").animate({"bottom" : "0px"}, 3000);

根据您上面的评论 opx 显示页脚。所以这意味着一旦用户开始滚动并且滚动的距离小于 400 像素,页脚就会动画。即:您开始滚动的第一刻。这就是为什么在您滚动的第一刻显示页脚的原因。我认为你需要这样做:

$(function(){
  $(window).scroll(function(){
    if ($(window).scrollTop()<400){
        $("#footer").stop().animate({"bottom" : "-150px"}, 3000);
    }else {
        $("#footer").stop().animate({"bottom" : "0px"}, 1500);
    }
  });
});

【讨论】:

  • 太好了,谢谢。我已经删除了if else 语句,但只是为了颠倒页脚位置就可以了。感谢您的帮助。
  • 注意额外的 .stop() 调用。他们确保立即停止任何当前动画。它看起来更好\
猜你喜欢
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-04
  • 1970-01-01
相关资源
最近更新 更多