我遇到了一个技术问题,我不确定最好的解决方法是什么。
基本上,我在音频进度条上工作,用户可以在其中更改歌曲的位置。这可以通过单击或按住鼠标并移动它来完成。
elem.addEventListener("mouseup", function(event){
elem.removeEventListener("mousemove", fn);
});
elem.addEventListener("mousedown", function(event){
elem.addEventListener("mousemove", function(event){
// Stuff to do
}, fn);
});
所以本质上:
如果按住鼠标然后移动鼠标,请执行某些操作。如果释放鼠标,请防止触发mousemove
。
我知道如果继续执行此操作可能会奏效,但对我来说似乎是一团糟。我不想养成不良习惯。
注意:我也尝试了以下方法:
function fn(event) {
if(event.button == 0) {
elem.addEventListener("mousemove", function(event){
// Stuff to do
});
}
}
我在这里想念的东西!
不要添加/删除侦听器,只需在触发操作中相应地设置一个变量即可:
var isMousedown = false;
elem.addEventListener("mousedown", function (event) {
isMousedown = true;
}
elem.addEventListener("mouseup", function (event) {
isMousedown = false;
});
elem.addEventListener("mousemove", function (event) {
if (isMousedown) {
// do stuff
} else {
// do different stuff, or nothing
}
});
您甚至可能希望将mousedown / mouseup侦听器放在父级(甚至是根元素)上,以避免在目标范围之外发生mouseup的情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句