【问题标题】:smooth effect when auto scrolling to anchor自动滚动到锚点时的平滑效果
【发布时间】:2014-01-21 10:14:03
【问题描述】:

我使用下面的代码自动滚动到锚点

        setTimeout(function(){window.location.hash = "#anchor";},5000);

它工作正常,但我需要在滚动时添加平滑效果。

JSFIDDLE

【问题讨论】:

  • 您好 user3083292,我需要更多信息。你到底想要什么??
  • 给出你想要的确切细节。

标签: javascript jquery scroll autoscroll


【解决方案1】:

使用 jQuery 的一个常见解决方案是将 scrollTop 属性动画到目标元素的偏移 y 位置:

$('html,body').animate({
    scrollTop: $('#anchor').offset().top
});

演示:http://jsfiddle.net/HZejZ/1/

如果您想保持您的代码原样(未经测试),您也许可以收听hashchange 事件:

$(window).on('hashchange', function(e) {
    e.preventDefault();
    var $target = $(window.location.hash);
    if ( $target.length ) {
        $('html,body').animate({scrollTop: $target.offset().top});
    }
});

(编辑:这似乎有问题,即使调用 preventDefault 浏览器也会跳转)

【讨论】:

  • 感谢您的支持:)
  • 美观又简单
【解决方案2】:

使用下面的代码

  $('html, #anchor').animate({ scrollTop: 0 },'slow');

这是 100% 工作代码。如果它也对您有用,请将其标记为答案,以便其他人也可以使用它...

【讨论】:

  • user3083292,请喜欢这个作为答案,以便其他人可以从您的帖子中使用它作为参考
猜你喜欢
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 2019-05-05
  • 1970-01-01
  • 2014-10-26
  • 2023-04-02
  • 1970-01-01
  • 2013-08-14
相关资源
最近更新 更多