簡體   English   中英

防止跳回屏幕jQuery動畫頂部

[英]prevent jumping back to top of screen jQuery animate

我有兩個背景不同的“屏幕”。

當用戶單擊向下箭頭時,它將從一個“屏幕”滾動到下面的屏幕。 第二個屏幕設置為在開始時不顯示任何內容。 這一切都按預期工作,但是,當嘗試再次滾動到屏幕頂部時,它會跳轉到頂部,而不是平滑地滾動回到頂部。 我還將GSAP補間庫用於其他動畫。

請參見下面的代碼:

JS

 $('.down-arrow').click(function() {
    var tl = new TimelineMax();
    tl.set('.background-two', {display: 'block', onComplete: scrollDown})
    tl.set('.background-one', {display: 'none', delay: 0.6})

    function scrollDown(){
          $('html, body').animate({scrollTop: $(window).height()}, 600);
    }

  });


  $('.up-arrow').click(function() {
    var tl = new TimelineMax();
    tl.set('.background-one', {display: 'block', onComplete: scrollUp})
    tl.set('.background-two', {display: 'none', delay: 0.6})
    function scrollUp(){
          $('html, body').animate({scrollTop: 0}, 600);
    }
  });

的CSS

.background-one {
    background: url(../img/Background1.png) no-repeat center;
    background-size: cover;
    height: 100%;
    width: 100%;
    position: relative;
}

.background-two {
    background: url(../img/Background2.png) no-repeat center;
    background-size: cover;
    height: 100%;
    width: 100%;
    position: relative;
}

的HTML

<div class="background-one">
   <div class="up-arrow">UP</div>
</div>
<div class="background-two">
   <div class="down-arrow">DOWN</div>
</div>

我的猜測是,當您將頂部塊設置為display: block; 它會立即出現並向下推您的底部方塊。

您可以嘗試的是滑動塊(通過設置其高度的動畫而不是滾動)。

當您正確關閉html div標簽時,它可以工作嗎?

編輯:

我創建了一個小提琴 ,動畫效果很好。 您正在刪除(顯示:無)另一個元素,這會導致頁面閃爍/跳轉。

function scrollDown(){
  $('html, body').animate({scrollTop: $(window).height()}, 600);
}
function scrollUp(){
  $('html, body').animate({scrollTop: 0}, 600);
}
$('.down-arrow').click(function() {
  var tl = new TimelineMax();
  tl.set('.background-two', {display: 'block', onComplete: scrollDown})
  tl.set('.background-one', {display: 'none', delay: 0.6})
  });


  $('.up-arrow').click(function() {
    var tl = new TimelineMax();
    tl.set('.background-one', {display: 'block', onComplete: scrollUp})
    tl.set('.background-two', {display: 'none', delay: 0.6})

  });

提示:將功能保持在點擊處理程序之外。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM