1. ホーム
  2. jquery

[解決済み] jQueryを使用してアンカーにページを上下にスクロールする方法は?

2022-03-07 19:46:21

質問

ローカルアンカーへのリンクをクリックしたときに、ページの上または下にスライド効果を含める方法を探しています。

こんな感じでリンクがあるようなものがいいんですが。

<a href="#nameofdivetc">link text, img etc.</a>

おそらく、このリンクをスライドリンクにしたいことがわかるように、クラスが追加されているのでしょう。

<a href="#nameofdivetc" class="sliding-link">link text, img etc.</a>

そして、このリンクがクリックされると、ページは必要な場所(div、見出し、ページ上部など)にスライドアップまたはダウンします。


以前はこんな感じでした。

    $(document).ready(function(){
    $(".scroll").click(function(event){
        //prevent the default action for the click event
        event.preventDefault();

        //get the full url - like mysitecom/index.htm#home
        var full_url = this.href;

        //split the url by # and get the anchor target name - home in mysitecom/index.htm#home
        var parts = full_url.split("#");
        var trgt = parts[1];

        //get the top offset of the target anchor
        var target_offset = $("#"+trgt).offset();
        var target_top = target_offset.top;

        //goto that anchor by setting the body scroll top to anchor top
        $('html, body').animate({scrollTop:target_top}, 1500, 'easeInSine');
    });
});

解決方法は?

説明

を使用して行うことができます。 jQuery.offset()jQuery.animate() .

をチェックしてください。 jsFiddleデモ .

サンプル

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

scrollToAnchor('id3');

その他の情報