3

もっとボタンがクリックされたときにスムーズなページスクロールを別の場所にアニメーション化するjsがあります。

機能しますが、サイトに別の言語が選択されている場合は機能しません。ユーザーが言語をスペイン語などに変更すると、URL は に変わりますwww.example.com/ES。これは、で動作するスムーズ スクロールを壊すようwww.example.comです。

スペイン語でリンクをクリックするとmore、スクロールの場所でページが完全にリロードされるように見えますが、スムーズなスクロールはありません。

これが私のjsです。スムーズ スクロールに代替言語の URL を含めるにはどうすればよいですか?

(function($){

        $(function() {
    $('a[href*=#]:not([href=#])').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) {
                $('html,body').animate({
                    scrollTop: target.offset().top
                }, 1000);
                return false;
            }
        }
    });
});

})(jQuery);

編集:参考までに、スクリプトはWordpressのfunctions.phpにエンキューされ、使用している言語プラグインはqTranslateと呼ばれます

4

2 に答える 2

0

この部分を変更してみてください:

$('a[href*=#]:not([href=#])')

このセレクターはすべてのタグを選択しています。それにクラスを追加してみてください。このようなもの:

$('.more a[href*=#]:not([href=#])')

この関数は、functions.php ファイルではなく、.js ファイルにある必要があります。別の言語を使用している場合でも、使用しているスクリプトには影響しません。

于 2015-06-25T12:02:09.160 に答える