1

大学で新しいプロジェクトを開始しましたが、コードに問題があります。

スムーズ スクロールを使用して別のアンカーに移動すると、#name_of_the_anchor リンクがステータス バーに表示されます。

スムーズ スクロールは「a href」を使用した場合にのみ機能するため、ステータス バーにはすべての div のリンクが表示されます。

Javascript:

$(document).ready(function(){
    $('a[href^="#"]').on('click',function (e) {
        e.preventDefault();

        var target = this.hash,
        $target = $(target);

        $('html, body').stop().animate({
        'scrollLeft': $target.offset().left
        }, 400, 'swing');
    });
});

このコードを変更して、ステータス バーにリンクを表示しないようにするにはどうすればよいですか? 君たちありがとう!

4

1 に答える 1

0

リンクで次のようなことができます。

<a href="javascript:;" data-target="#anchor-name">My Link</a>

そして、JavaScriptでこのようなことをします

$(document).ready(function(){
    $('a[data-darget]').on('click', function (e) {
        e.preventDefault();

        var target = $(this).data('target'),
        $target = $(target);

        $('html, body').stop().animate({
           'scrollLeft': $target.offset().left
        }, 400, 'swing');
    });
});

これにより、デフォルトのブラウザの動作が妨げられます。ただし、JavaScript の実行に失敗した場合 (つまり、ユーザーが JS を無効にした場合や、他の何かがスクリプトの実行を停止した場合) にフェイルバックが発生しないため、これは実際には最善の方法ではありません。

于 2015-10-18T17:39:02.410 に答える