3

我有一个 js,当单击更多按钮时,它会动画平滑页面滚动到另一个位置。

它有效,但如果选择了该站点的另一种语言,则无效。当用户将语言更改为西班牙语时,URL 将更改为www.example.com/ES. 这似乎打破了平滑滚动,它适用于www.example.com.

单击more西班牙语链接似乎完全重新加载页面,在滚动位置,但没有平滑滚动。

这是我的js。如何在平滑滚动中包含 alt 语言 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=#])')

这个函数应该在你的 .js 文件上,而不是在 functions.php 文件上。如果你有不同的语言不应该影响你拥有的脚本。

于 2015-06-25T12:02:09.160 回答
0

好的,我终于让它工作了。我使用的语言插件要求所有支持的非主要语言都有根 url 的缩写。例如,西班牙语页面可能看起来像example.com/ES/contact

我使用的锚点意外地将西班牙语用户重定向回主要语言,因为它省略了相对 URL 的 /ES/ 部分。我只是将我的锚 href 元素从 更改<a href="/#more"<a href="[:en]/#more[:ES]/ES/#more[:]",以包含语言插件用来根据所使用的语言呈现不同元素的钩子。

所以解决方案是在 HTML 实现中,我调用的 javascript 文件本来就很好。

http://www.thelucyfoundation.com上的示例

于 2015-08-25T09:58:23.383 回答