使用方法

MouseDirection($('div'),{
    // 移入
    enter:function(direction){},
    // 移出
    leave:function(direction){}
})

移入移出方向判断代码

根据githup修改而来。
修复:多个div不能判断移入移出方向问题。

var MouseDirection = function (element,obj) {
    var $element = $(element);
    var dirs = ['top', 'right', 'bottom', 'left'];
    var calculate = function (e,$obj) {
        var w = $obj.outerWidth(),
            h = $obj.outerHeight(),
            offset = $obj.offset(),
            x = (e.pageX - offset.left - (w / 2)) * (w > h ? (h / w) : 1),
            y = (e.pageY - offset.top - (h / 2)) * (h > w ? (w / h) : 1);

        return Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4;
    };

    $element.on('mouseenter', function (e) {
        var r = calculate(e,$(this));
        obj && obj.enter.bind(this)(dirs[r]);
    }).on('mouseleave', function (e) {
        var r = calculate(e,$(this));
        obj && obj.leave.bind(this)(dirs[r]);
    });
};

下载地址

Fork me on GitHub