我正在squarespace 7.1上构建一个单页网站,使用jquery平滑滚动到锚链接。
它在firefox上运行得很好,但在safari、ios safari和chrome上,最后一个链接滚动在到达正确的部分之前停止。只需第二次单击,它就会到达正确的部分。
我尝试了许多不同的方法,但似乎没有什么能解决问题。
这里是我尝试过的所有方法,但为什么它们不适用于safari/chrome和最后一个链接?
方法1:
$(function() {
$('a[href*=\\#]:not([href=\\#])').on('click', function() {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.substr(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top -140
}, 1000);
return false;
}
});
});
方法2:
在标题上:
/* General Anchor Links Script */
function scrollToAnchor(aid){
var aTag = $("a[name='"+ aid +"']");
$('html,body').animate({scrollTop: aTag.offset().top -140},'slow');
}
页脚:
/* Scroll Anchor Links Script - Assign Services-Buttons to correspondent Service-Section */
$("#link-logo, #link-logo-mob").click(function() {
scrollToAnchor('toppage');
});
$("#link1, #link-mob1").click(function() {
scrollToAnchor('aboutus');
});
$("#link2, #link-mob2").click(function() {
scrollToAnchor('programs');
});
$("#link3, #link-mob3").click(function() {
scrollToAnchor('contactformus');
});
第三种方法:
$("#link1").click(function() {
$('html, body').animate({
scrollTop: $("#page-section-60d1b2a34f32530186fb1b33").offset().top -140
}, 1000);
});
$("#link2").click(function() {
$('html, body').animate({
scrollTop: $("#page-section-60d1eab507f6f2308ee99101").offset().top
-140 }, 1000);
});
$("#link3").click(function() {
$('html, body').animate({
scrollTop: $("#page-section-60d4761c37b7ac252b91bc7a").offset().top -140
}, 1000);
});
暂无答案!
目前还没有任何答案,快来回答吧!