0

私は特定のアンカーリンクにGoogleのスムーズなスクロールスクリプトを使用していますが、それだけ#tothetopではありません#。私はexample.jsファイル(スクリプトでダウンロードする)でこれを行いました:

かわった:

$('a[href*=#]').click(function() { ... });

に:

$('a[href*=#tothetop]').click(function() { ... });

だから今はスムーズなスクロールをにのみ適用し#tothetopますが、他の異なるアンカーリンクにどのように適用しますか?例:#tothetop、、、#tothebottomなど#gotothepub?(これは長い話ですが、要するに、ページ上の別のスクリプトと競合するため、なぜ「#」を使用しないのか尋ねないでください)私は試しました:

$('a[href*=#tothetop]','a[href*=#tothebottom]').click(function() { ... });

しかし、これは機能しません。私はJavascriptとPHPにあまり精通していませんが、これを行う簡単な方法があると確信していますか?

example.jsの完全なコードは次のようになります。

$(function(){

$('a[href*=#tothetop]').click(function() {

if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') 
    && location.hostname == this.hostname) {

        var $target = $(this.hash);

        $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');

        if ($target.length) {

            var targetOffset = $target.offset().top;

            $('html,body').animate({scrollTop: targetOffset}, 1000);

            return false;

        }

    }

});

});
4

2 に答える 2

1

で試してみてください

$('a[href^="#"]').click(...);

このセレクターは、href属性が。で始まるすべてのアンカーに一致し#ます。

あなたの例は有効ですが、そのように書く必要があります

$('a[href*="#tothetop"], a[href*="#tothebottom"]')

値を囲む引用符と一重引用符(1回だけ使用)に注意してください。

于 2012-06-22T12:55:48.693 に答える
1

明らかに、スクロールアンカーにすべて「toTheAnchor」という名前を付けているので、これを使用します。

$('body').on('click', 'a[href^=#][href*=to]', function() {});

これにより、「#」で始まり、単語に「to」が含まれるすべてのリンクが選択されます。

于 2012-06-22T13:09:39.150 に答える