在鼠标按下期间获取鼠标位置

Get mouse location during mouse down?

本文关键字:鼠标 获取 位置      更新时间:2023-09-26

如何在按住鼠标按钮的同时连续获取鼠标的位置?

我知道我能做到:

<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);
    }
});​

演示:http://jsfiddle.net/HBZBQ/

这里有一个JSFiddle给你。您需要将鼠标按钮的状态存储在变量中。

j查询:

$(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()函数中,仅在鼠标按下时执行所需的操作。在上面的代码中,我只是打印鼠标的位置。