想嘗試一下用setInterval做彈幕,對發送按鈕綁定了下面這段函數,但是每點擊一次都會造成之前的setInterval失效。也就是說一個彈幕跑到中途,如果這個時候又發送了新的彈幕就會使得前面的彈幕停下來。難道每次click事件之后不是都注冊了一個新的setInterval嗎?想不通問題出在哪里,求解惑,十分感謝!function danmuSend(){ var danmuInput = document.getElementsByClassName("danmu-input")[0].value; danmuWrap.innerHTML = "<div class='danmu' style='position:absolute; top:" + Math.floor(Math.random()*390) +"px; right:" + 5 + "px'>" + danmuInput + "</div>" + danmuWrap.innerHTML; var danmu = document.getElementsByClassName("danmu")[0]; var danmuMove = setInterval(function(){ var danmuY = parseInt(danmu.style.right); danmuY += 5; danmuY > 790 && clearInterval(danmuMove); danmu.style.right = danmuY + 'px'; alert(danmuY); },16.7);}
多個setInterval沖突
烙印99
2018-10-20 18:13:15