我试图在这个(修改的)jQuery插件中检测三种鼠标移动状态——左、右和停止(鼠标不动):
(function ($) {
var options = {};
var oldx = 0;
var direction = "";
$.mousedirection = function (opts) {
var defaults = {};
options = $.extend(defaults, opts);
$(document).bind("mousemove", function (e) {
var activeElement = e.target || e.srcElement;
if (e.pageX == oldx) {
direction = "stop";
} else if (e.pageX > oldx) {
direction = "right";
} else if (e.pageX < oldx) {
direction = "left";
}
$(activeElement).trigger(direction);
$(activeElement).trigger({
type: "mousedirection",
direction: direction
});
oldx = e.pageX;
});
}
})(jQuery)
$(function () {
$.mousedirection();
$(".container").bind("mousedirection", function (e) {
$(this).html("Mouse Direction: <b>" + e.direction + "</b>");
});
});
但它没有按预期工作。我相信在触发后续函数检查之间应该有某种最小延迟,mousemove
但我不确定如何实现它。
http://jsfiddle.net/fallenartist/7pBE7/1/ - 主要处于“停止”状态,未正确检测到“左”和“右”鼠标移动
太感谢了。