0

我在 stackoverflow 上尝试了其他用户的一系列解决方案,但我无法让任何工作。任何人都可以告诉我如何动画滚动到此页面上的锚点。任何帮助将不胜感激!

(抱歉,我是为网站编写代码的新手,是的,我正在使用 weebly,它可能很糟糕,但它必须这样做。我能够上传 javascript 文件并通过 CSS 和 HTML 链接到它们)

4

6 回答 6

2

那个jsfiddle呢?

它滚动到特定的 ID !

function scrollToAnchor(aid){
    var aTag = $("a[name='"+ aid +"']");
    $('html,body').animate({scrollTop: aTag.offset().top},'slow');
}

$("#link").click(function() {
   scrollToAnchor('id3');
});
于 2013-08-04T16:26:02.323 回答
2

尝试这个:

function ScrollTo () {
    $('a').click(function(){
    $('html, body').animate({
        scrollTop: $( $.attr(this, 'href') ).offset().top
    }, 500);
    return false;
});
}

并将您的链接格式化如下:

<a href="#aboutUs" onClick="ScrollTo()">About Us</a>
于 2013-08-04T16:46:45.850 回答
1

如果要制作动画/平滑滚动,可以使用:

var anchor = $('a[name=Photoshop]').offset().top
$(document.body).animate({
         scrollTop: var
     }, 2000);

如果您只想快速滚动,可以使用var anchor = $('a[name=Photoshop]').offset().top 然后$(document.body).scrollTop(anchor)

于 2013-08-04T16:33:17.100 回答
0

我也遇到了麻烦,我使用的最好的教程是 http://www.learningjquery.com/2007/10/improved-animated-scrolling-script-for-same-page-links 确保你的锚链接是在标签内

<a id="work></a>

然后使用哈希标签链接到它们

<a href="#work"></a>
于 2013-08-04T16:23:21.530 回答
0

我有一个对我来说效果很好的功能,它会自动为滚动设置动画,点击锚标签;

$("a").click(function(event){
    if(event.target.href.indexOf("#")!=-1){
        var arrhash=event.target.href.split("#");
        $('html, body').animate(
            { scrollTop: $('a[name=' + arrhash[1] + ']').offset().top },
            500,    // this is the animation time
            function (){ return false; }    // what to do after the animation
        );
    }
});

任何时候你有跳转到某个地方 - 它都会被动画化。此外,如果 javascript 不工作,它会优雅地退回到标准跳转。

我无法让 Abhishek Umrao 的代码在顶部工作,所以我根据他们的想法得到了这个工作。

于 2018-01-08T18:19:49.093 回答
0

其他建议的答案允许滚动动画以获得精确的链接。JJ Shaw 的回答不起作用,而且它会触发所有链接的事件,即使是那些不指向锚点的链接。对于所有像我一样想要为所有指向锚点的链接滚动动画的人来说,这里是一个正常工作的解决方案。

$('a[href^="#"]').on('click', function(event) {
    var anchor= $(this.getAttribute('href'));
    if( anchor.length ) {
       event.preventDefault();
       $('html, body').stop().animate({
          scrollTop: anchor.offset().top
       }, 500);
    }
});
于 2018-10-16T08:40:02.737 回答