猿问

多个setInterval冲突

想尝试一下用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);

}


烙印99
浏览 427回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答