次のスクリプトを使用して、要素の左または右へのマウスの動きを検出しています。
それはうまく機能し、方向に応じて、画像スライダーをトリガーして左右にスライドさせます。ただし、これに別の変数を追加する方法を理解するのに問題があります。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');
}
});
});