如何在按住按鈕的同時持續獲取鼠標的位置?在鼠標放下期間獲取鼠標位置?
我知道我可以做:
<element onclick="functionName(event)"></element>
<script>
function functionName(e){
e.pageX
e.pageY
//do stuff
}
</script>
,我知道你可以使用onmousedown事件事件,但我怎麼會不斷地得到位置,而按鈕保持靜止下來?
奇怪的是,我找不到這個地方。
如何在按住按鈕的同時持續獲取鼠標的位置?在鼠標放下期間獲取鼠標位置?
我知道我可以做:
<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