第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用if語句啟動/停止和重置setInterval動畫?

如何使用if語句啟動/停止和重置setInterval動畫?

有只小跳蛙 2021-05-06 18:22:47
如果用戶滾動超過一定距離,我希望能夠“播放”無限/循環(huán)的垂直滾動動畫。然后,如果用戶向后滾動超過該距離,我想停止播放該動畫并將狀態(tài)重置為原始/開始位置。我有感覺可以用實現(xiàn)clearInterval,但不能完全理解。這是我當前的代碼:HTML<div id="list">  <span>Item 1</span>  <span>Item 2</span>  <span>Item 3</span>  <span>Item 4</span>  <span>Item 5</span></div> <!-- /.list -->jQuery的const startCycle = () => {  $('#list').stop().animate({ scrollTop: `${amount}px` }, 400, 'swing', function() {    // update the order of the elements    $(this).scrollTop(0).find('span:last').after($('span:first', this))  })}const playAnimation = () => {  const pixels = window.pageYOffset  console.log("pixels:", pixels)  if (pixels >= 30) {    setInterval(startCycle, 1000)  } else {    clearInterval(startCycle)  }}document.addEventListener("scroll", playAnimation)這是查看筆的鏈接:https : //codepen.io/anon/pen/vMoJJe不幸的是,當前動畫顯得不連貫或卡在上面的if語句中,然后無法停止并向上滾動。目的是停止動畫并將其返回到其起始位置,span如果用戶超過一定距離,則顯示第一個動畫。
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

要清除間隔,您必須保存的返回值 setInterval


const playAnimation = () => {


  const pixels = window.pageYOffset

  console.log("pixels:", pixels)


  let interval // declare the variable

  if (pixels >= 30) {

    interval = setInterval(startCycle, 1000) // save the interval ID

  } else {

    clearInterval(interval) // clear the interval ID

  }

}


查看完整回答
反對 回復 2021-05-20
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

您遇到的問題是您要不止一次設置間隔。每次scroll觸發(fā)事件時,都會啟動一個間隔。


因此,添加一個布爾值以確保一次setInterval()只調用一個布爾值應該可以解決您的問題。


編輯:同樣,正如Alex Wayne提到的那樣,您應該將間隔保存在變量中,以便以后清除它。


例如:


var interval;

var isIntervalSet = false;

const playAnimation = () => {


  const pixels = window.pageYOffset

  console.log("pixels:", pixels)


  if (pixels >= 30 && !isIntervalSet) {

    interval = setInterval(startCycle, 1000)

    isIntervalSet = true;

  } else {

    clearInterval(interval);

    isIntervalSet = false;

  }


}


document.addEventListener("scroll", playAnimation)


查看完整回答
反對 回復 2021-05-20
  • 2 回答
  • 0 關注
  • 205 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號