【问题标题】:smooth scrollTo top not working平滑滚动到顶部不起作用
【发布时间】:2013-05-26 14:47:36
【问题描述】:

我正在制作一个 div,它在按下时会将用户发送到顶部,但滚动流畅。 我可以将它发送到顶部,但不能平滑滚动。

我的代码在下面

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script>
      $(document).ready(function(){
            $('#footer a').click(function () {
            $('body,html').animate({scrollTop:0},1000);
      return false;
      };
      }

</script>

【问题讨论】:

    标签: javascript jquery html scroll jquery-animate


    【解决方案1】:

    我不确定为什么您的代码完全有效。您的代码缺少));。另外我还没有测试过这么旧版本的jQuery。

    见:

    $(document).ready(function() {
          $('#footer a').click(function () {
              $("body").animate({scrollTop:0},1000);
          });
    });
    

    http://jsfiddle.net/4SV75/

    【讨论】:

      【解决方案2】:

      问题是您的 javascript 缺少一些右括号 )。这是我使用的固定版本:

        $(document).ready(function(){
            $('#footer a').click(function (event) {
                $('body,html').animate({scrollTop:0},1000);
                event.preventDefault();
            });
        });
      

      jsfiddle:http://jsfiddle.net/tAbqW/

      它把你送到顶部的原因很可能是你使用了href='#',即使没有 javascript,它也会把你送到顶部。

      【讨论】:

      • 附加评论:我自己最初是为了支持慢速滚动而开始走这条路的,但我发现一些边缘情况不起作用。它在尝试为 body 和 html 设置动画时导致了一些奇怪的行为,所以我最终改用 jquery.scrollTo.js 来为我处理它,而不是尝试研究所有的边缘情况。
      【解决方案3】:

      你在语法上犯了一些错误。试试这个:

      $(document).ready(function() {
          $('#footer a').click(function(){
               $("html, body").animate({ scrollTop: 0 }, 1000);
               return false;
          });
      });
      

      scrollTop:0 滚动到页面的最顶部,0px 位置,1000 表示动画的持续时间,以毫秒为单位。较高的值表示较慢的动画。您还可以使用“快”、“慢”或“正常”来代替毫秒。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-19
        相关资源
        最近更新 更多