在鼠标放下期间获取鼠标位置?
如何在按住按钮的同时持续获取鼠标的位置?在鼠标放下期间获取鼠标位置?
我知道我可以做:
<element onclick="functionName(event)"></element>
<script>
function functionName(e){
e.pageX
e.pageY
//do stuff
}
</script>
,我知道你可以使用onmousedown事件事件,但我怎么会不断地得到位置,而按钮保持静止下来?
奇怪的是,我找不到这个地方。
不管怎样,我建议使用mousemove
事件与检查,如果which
事件属性等于1
(即按下鼠标左键):
$("element").on("mousemove", function(e) {
if (e.which == 1) {
console.log(e.pageX + "/" + e.pageY);
}
});
'e.which == 1'是纯粹的天才。为什么我没有想到这个! – Bojangles
Here是对的jsfiddle您。您需要将鼠标按钮的状态存储在变量中。
的jQuery:
$(document).ready(function() {
$(document).mousedown(function() {
$(this).data('mousedown', true);
});
$(document).mouseup(function() {
$(this).data('mousedown', false);
});
$(document).mousemove(function(e) {
if($(this).data('mousedown')) {
$('body').text('X: ' + e.pageX + ', Y: ' + e.pageY);
}
});
});
在这里,我保存了鼠标按键的或使用$(document).data()
下降状态document
。我可以使用全局变量,但以这种方式存储它会使代码变得更清晰。
在你的$.mousemove()
函数中,只有在鼠标关闭时才做你想做的事情。在上面的代码中,我只是打印鼠标的位置。
不错!在IE中,接受的答案会在没有mousedown事件的情况下更改mouseover上的值。这个在我试过的每个浏览器中工作正常!谢谢! – pmrotule
你是什么意思*“连续”*?尝试'onmouseover'。 – VisioN
随着鼠标的移动,我想不断地更新位置,但我希望鼠标被点击,而不是鼠标悬停在元素上。 – maxhud