1

我想知道如何计算鼠标特定的移动。

我想就如何确定鼠标从 A 移动到 B 提供一些建议。

比如像win8。当鼠标在窗口一侧时,然后将其放下,将出现一个侧边栏。

$(window).on('mousemove' function(e){
   if(e.pageX is on area of or close to the side of window){
      // how can I calculate if the mouse Y is from a point to a point??
      if(Y is moved from A to B){
          //do something
      }
   }
})
4

2 回答 2

1

window您可以通过检查其宽度来确定其左侧:

if(e.pageX >= ($(window).width() - 20))

将检查鼠标是否在窗口右侧的 20px 内。

要检查它移动了多远,您需要以某种方式记录最后一个已知位置,然后进行比较。因此,例如,您可能会执行以下操作:

var last_pos = { x: false, y: false },
 coord_check = $(window).width() - 20; // or whatever value from the right you want to check.

$(window).on('mousemove' function(e) {

    if(e.pageX >= coord_check)
    {
        // If they're null, we can't do anything:
        if((last_pos.x !== false && last_pos.y !== false) && ((e.pageX - last_pos.x) > 20)) {
            // you can access the current position through e.pageX and e.pageY
            // last_post.x and last_pos.y will tell you the last known position
        }
    }

    // Now we need to update the last position:
    last_pos.x = e.pageX;
    last_pos.y = e.pageY;

});
于 2013-02-17T19:44:53.517 回答
1

您应该有“区域”来控制,并在 mousemove 中跟踪最后一个和当前区域,并基于注册事件处理程序来处理场景,例如从 A 到 B,从 C 到 X 等等. :)

这里有一个任务列表:

  • 创建具有 x、y、宽度、高度和名称的区域对象数组
  • 在 onmouse move 检查当前区域是否与当前区域不同,然后将前一个区域设置为当前区域,并将当前区域名称更改为当前区域名称。
  • 将变量 event 设置为 previous + '-' + current
  • 检查事件处理程序数组中事件位置中的任何数据,如果有任何函数调用则

希望能帮助到你 !

于 2013-02-17T19:47:21.033 回答