我正在使用以下脚本来检测元素上的鼠标向左或向右移动。
它效果很好,并且根据方向,我触发图像滑块向左或向右滑动。我在弄清楚如何向其中添加另一个变量时遇到问题。我只希望事件在 X 像素之后触发。因此,如果鼠标向左移动 200 像素,则该事件将触发。
这是我当前设置的一个小提琴。http://jsfiddle.net/wMMrh/1/
我试过添加if (i++ > 200) { //do something }
到mousemovement
,但这对我没有帮助。
(function ($) {
var options = {};
var oldx = 0;
var direction = "";
var stop_timeout = false;
var stop_check_time = 150;
$.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 = "right";
} else if (e.pageX < oldx) {
direction = "left";
}
clearTimeout(stop_timeout);
stop_timeout = setTimeout(function () {
direction = "stop";
$(activeElement).trigger(direction);
$(activeElement).trigger({
type: "mousedirection",
direction: direction
});
}, stop_check_time);
$(activeElement).trigger(direction);
$(activeElement).trigger({
type: "mousedirection",
direction: direction
});
oldx = e.pageX;
});
}
})(jQuery)
$(function () {
$.mousedirection();
$(".iosSlider").bind("mousedirection", function (e) {
if (!$(".iosSlider").hasClass("moving")) {
if (e.direction == "left")
$(".iosSlider").iosSlider('nextSlide');
else
$(".iosSlider").iosSlider('prevSlide');
}
});
});