jquery平滑滚动在safari和chrome上无法正常工作

hlswsv35  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(180)

我正在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);
});

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题