平滑的页面滚动器不适用于其他语言(即更改的 URL 结构)
Smooth page scroller not working for alt languages (i.e. altered URL structure)
我有一个 js,当单击更多按钮时,它可以使页面平滑滚动到另一个位置。
它可以工作,但如果为该网站选择了另一种语言则不会。当用户将语言更改为西班牙语时,URL 会更改为 www.example.com/ES
。这似乎打破了适用于 www.example.com
.
的平滑滚动
在西班牙语中单击 more
link 似乎完全重新加载页面,在滚动位置,但没有平滑滚动。
这是我的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
尝试更改此部分:
$('a[href*=#]:not([href=#])')
此选择器正在选择所有标签,请尝试向其添加 class。像这样:
$('.more a[href*=#]:not([href=#])')
此函数应该在您的 .js 文件中,而不是在 functions.php 文件中。如果您有不同的语言,则不应影响您拥有的脚本。
好的,我终于让它工作了。我使用的语言插件要求所有受支持的非主要语言都有根 url 的缩写。例如西班牙文页面可能看起来像 example.com/ES/contact
.
我使用的锚点不小心将西班牙语用户重定向回主要语言,因为它省略了相对 URL 的 /ES/ 部分。我只是将锚点 href 元素从 <a href="/#more"
更改为 <a href="[:en]/#more[:ES]/ES/#more[:]"
,以包含语言插件用于根据所使用的语言呈现不同元素的挂钩。
所以解决方案是在 HTML 实现中,我调用的 javascript 文件没有问题。
我有一个 js,当单击更多按钮时,它可以使页面平滑滚动到另一个位置。
它可以工作,但如果为该网站选择了另一种语言则不会。当用户将语言更改为西班牙语时,URL 会更改为 www.example.com/ES
。这似乎打破了适用于 www.example.com
.
在西班牙语中单击 more
link 似乎完全重新加载页面,在滚动位置,但没有平滑滚动。
这是我的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
尝试更改此部分:
$('a[href*=#]:not([href=#])')
此选择器正在选择所有标签,请尝试向其添加 class。像这样:
$('.more a[href*=#]:not([href=#])')
此函数应该在您的 .js 文件中,而不是在 functions.php 文件中。如果您有不同的语言,则不应影响您拥有的脚本。
好的,我终于让它工作了。我使用的语言插件要求所有受支持的非主要语言都有根 url 的缩写。例如西班牙文页面可能看起来像 example.com/ES/contact
.
我使用的锚点不小心将西班牙语用户重定向回主要语言,因为它省略了相对 URL 的 /ES/ 部分。我只是将锚点 href 元素从 <a href="/#more"
更改为 <a href="[:en]/#more[:ES]/ES/#more[:]"
,以包含语言插件用于根据所使用的语言呈现不同元素的挂钩。
所以解决方案是在 HTML 实现中,我调用的 javascript 文件没有问题。