【发布时间】:2015-12-29 21:43:04
【问题描述】:
我正在尝试在“mousedown”上触发动画,并在释放鼠标后立即停止它。
在“mousedown”上,我将一个标志设置为 true,它设置了单击相应按钮的动画条件。问题出在“mouseup”上,我将标志设置为 false,但动画不会停止。我在控制台中没有收到任何错误,因此这似乎是一个基于逻辑的错误。
我的错误是什么,我该如何解决?
https://jsfiddle.net/b4kn4w3g/2/
基本代码:
function eventBundle(e) {
if (e.target !== e.currentTarget) {
if (e.target == parent.children[0]) {
isDown = true;
amount = "reduce";
} else if (e.target == parent.children[1]) {
isDown = true;
amount = "increase";
}
}
e.stopPropagation();
}
window.addEventListener("mouseup", function(){
isDown = false;
amount = "neutral";
});
function holdStuff() {
if (isDown == true && amount == "increase") {
maxValue += 100;
} else if (isDown == true && amount == "reduce") {
maxValue -= 100;
}
requestAnimationFrame(holdStuff)
}
【问题讨论】:
-
isDown 的变量范围是什么?
-
@AdamKonieska 你可以在我的 Jsfiddle 中看到它。它具有全球范围