Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按住LMB事件时的JS/jQuery_Javascript_Jquery_Mouseevent - Fatal编程技术网

Javascript 按住LMB事件时的JS/jQuery

Javascript 按住LMB事件时的JS/jQuery,javascript,jquery,mouseevent,Javascript,Jquery,Mouseevent,我在jQuery/JS中做一些动画,我想根据是否按住LMB(鼠标左键)来更改Pull_Push变量 现在我正在寻找一个示例,但只找到了.mousedown()和.mouseup()事件,但它们似乎在按下/释放按钮时触发。 我需要在这两者之间安排一个活动。(持有时) 你可以查看 这是我想我必须解决的部分: var pull_or_push = "push"; $(document).on("mousedown", function () { var pull_or_push = "pull

我在jQuery/JS中做一些动画,我想根据是否按住LMB(鼠标左键)来更改Pull_Push变量

现在我正在寻找一个示例,但只找到了.mousedown()和.mouseup()事件,但它们似乎在按下/释放按钮时触发。 我需要在这两者之间安排一个活动。(持有时)

你可以查看

这是我想我必须解决的部分:

var pull_or_push = "push";
$(document).on("mousedown", function () {
    var pull_or_push = "pull";
});
$(document).on("mouseup", function () {
    var pull_or_push = "push";
});
您认为有什么可能的方法可以实现我想要的吗?

考虑使用以在一段时间内高效地运行代码。使用
setInterval
setTimeout
也可以工作,但是
requestAnimationFrame
是专门为这类事情制作的

在以下示例中,
doSomething
函数仅在调用mousedown后开始运行,然后在调用mouseup后停止运行。但是,您可以通过在这些事件之外调用
doSomething
函数,轻松地使代码始终运行。这样,只需检查
pull\u或\u push
的状态,就可以在按下LMB时执行某些操作,而在不按下LMB时执行其他操作

还要注意,在mouseup和mousedown回调中,您重新声明了
pull\u或\u push
,而不是修改全局变量(只需删除
var

var pull\u或push=“push”;
var请求;
$(文档).on(“mousedown”,函数(){
pull_或push=“pull”;
doSomething();
});
$(document).on(“mouseup”,函数(){
pull_或push=“push”;
取消动画帧(请求)
});
功能剂量测定法(dt){
log(“做某事”)
请求=请求动画帧(doSomething)
}
考虑使用以在一定时间间隔内高效运行代码。使用
setInterval
setTimeout
也可以工作,但是
requestAnimationFrame
是专门为这类事情制作的

在以下示例中,
doSomething
函数仅在调用mousedown后开始运行,然后在调用mouseup后停止运行。但是,您可以通过在这些事件之外调用
doSomething
函数,轻松地使代码始终运行。这样,只需检查
pull\u或\u push
的状态,就可以在按下LMB时执行某些操作,而在不按下LMB时执行其他操作

还要注意,在mouseup和mousedown回调中,您重新声明了
pull\u或\u push
,而不是修改全局变量(只需删除
var

var pull\u或push=“push”;
var请求;
$(文档).on(“mousedown”,函数(){
pull_或push=“pull”;
doSomething();
});
$(document).on(“mouseup”,函数(){
pull_或push=“push”;
取消动画帧(请求)
});
功能剂量测定法(dt){
log(“做某事”)
请求=请求动画帧(doSomething)
}

使用这些事件有什么问题?您拥有的代码将确定鼠标按钮是否按下,您可以在执行其他操作时检查
pull\u或push
变量。使用这些事件有什么问题?您拥有的代码将确定鼠标按钮是否按下,在执行其他操作时,只需检查
pull\u或\u push
变量即可,谢谢!您的方法对我来说是新的,我目前正在探索.requestAnimationFrame()函数,到目前为止,代码的工作方式是:)+1,感谢您提到我的重新声明错误谢谢!您的方法对我来说是新的,我目前正在探索.requestAnimationFrame()函数,到目前为止,代码的工作方式是:)+1,因为我提到了我的重新声明错误