首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery平滑滚动到锚点?

jquery平滑滚动到锚点?
EN

Stack Overflow用户
提问于 2010-11-17 03:17:03
回答 7查看 156K关注 0票数 64

有没有办法使用jQuery向下滚动到锚链?

像这样:

代码语言:javascript
复制
$(document).ready(function(){
  $("#gotomyanchor").click(function(){
      $.scrollSmoothTo($("#myanchor"));
  });
});
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-10-04 02:40:48

我是这样做的:

代码语言:javascript
复制
    var hashTagActive = "";
    $(".scroll").on("click touchstart" , function (event) {
        if(hashTagActive != this.hash) { //this will prevent if the user click several times the same link to freeze the scroll.
            event.preventDefault();
            //calculate destination place
            var dest = 0;
            if ($(this.hash).offset().top > $(document).height() - $(window).height()) {
                dest = $(document).height() - $(window).height();
            } else {
                dest = $(this.hash).offset().top;
            }
            //go to destination
            $('html,body').animate({
                scrollTop: dest
            }, 2000, 'swing');
            hashTagActive = this.hash;
        }
    });

然后你只需要像这样创建你的锚点:

代码语言:javascript
复制
<a class="scroll" href="#destination1">Destination 1</a>

你可以在我的website上看到。

这里还提供了一个演示:http://jsfiddle.net/YtJcL/

票数 121
EN

Stack Overflow用户

发布于 2013-02-11 11:48:24

到目前为止我见过的最好的解决方案:jQuery: Smooth Scrolling Internal Anchor Links

HTML:

代码语言:javascript
复制
<a href="#comments" class="scroll">Scroll to comments</a>

脚本:

代码语言:javascript
复制
jQuery(document).ready(function($) {
    $(".scroll").click(function(event){     
        event.preventDefault();
        $('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
    });
});
票数 40
EN

Stack Overflow用户

发布于 2012-08-22 18:34:14

下面是我用来将jQuery scrollTo快速绑定到所有锚链接的代码:

代码语言:javascript
复制
// Smooth scroll
$('a[href*=#]').click(function () {
    var hash = $(this).attr('href');
    hash = hash.slice(hash.indexOf('#') + 1);
    $.scrollTo(hash == 'top' ? 0 : 'a[name='+hash+']', 500);
    window.location.hash = '#' + hash;
    return false;
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4198041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档