使用Jquery滚动到页面顶部,然后单击返回到上一个位置

dw1jzc5e  于 2022-11-03  发布在  jQuery
关注(0)|答案(1)|浏览(172)

$('.course-header').click(function() { $("html, body").animate({scrollTop: 0}, "smooth"); return false; });
单击.“course-header”时,页面将滚动到页面顶部,但我希望再次单击.“course-header”时,页面将滚动回上一个(原始)位置。我该怎么做才能实现这一点?
我尝试过将.toggle()与.animate()组合使用,但没有成功。

bvjveswy

bvjveswy1#

一种解决方案是声明一个变量来跟踪滚动位置,并使用它在单击时返回到上一个位置:

//declare variable to track scroll position
let yscrollpos = 0;

$('.course-header').click(function() {
    if(yscrollpos > 0) {
       $("html, body").animate({
          scrollTop: yscrollpos
       }, "smooth");
       yscrollpos = 0;
    } else {
       //get current scroll position
       yscrollpos = $(document).scrollTop();
       $("html, body").animate({
          scrollTop: 0
       }, "smooth");
    }

    return false; 
 });

相关问题