【问题标题】:mousemove not accurate for mouse positionmousemove 对于鼠标位置不准确
【发布时间】:2014-04-07 16:09:08
【问题描述】:

我正在尝试在另一个 div 中“绘制”一个 div。我正在使用jquerymousemove 事件来执行此操作。这行得通,但是,它“有问题”。我的意思是,在 mousemove 事件中,鼠标的位置有时是错误的。尤其是当您快速移动鼠标时。

我在这里创建了 jsfiddle:http://jsfiddle.net/zz32W/,请看一下。注意绘制的 div 的右下角,它并不总是鼠标/光标所在的位置。

这也是相关代码(你可以在 jsfiddle 上看到它的实际效果):

$(function() {

    var $test = $('#test');
    var $inner = $('#inner');

    var testOffset = $test.offset();
    var draging = false;
    var start_x, start_y;



    $test.mousedown(function(e) {
            draging = true;
            start_x = e.pageX - testOffset.left;
            start_y = e.pageY - testOffset.top;
    });

    $test.mouseup(function(e) {
        draging = false;
    });

    $test.mousemove(function(e) {
        if (draging) {
            console.log('moving');

            var end_x = e.pageX - testOffset.left;
            var end_y = e.pageY - testOffset.top;

            $inner.css({
                top: start_y+'px',
                left: start_y+'px',
                width: (end_x-start_x)+'px',
                height: (end_y-start_y)+'px'
            });
        }
    });

});

有什么办法解决这个问题吗?

谢谢

【问题讨论】:

  • 注意到不能从右下角到左上角画一个矩形?

标签: javascript jquery html


【解决方案1】:

发现问题。这是一个错字。在第 31 行,

    left: start_y+'px',

需要

    left: start_x+'px',

:)

【讨论】:

  • 请注意,topleftheight 中存在三个此类错误。
猜你喜欢
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
  • 2019-09-25
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多