有没有办法让鼠标轮在Javascript中触发“悬停”事件?

时间:2016-06-08 01:26:35

标签: javascript jquery mouseevent mousewheel

默认情况下,如果用户使用鼠标滚轮向下滚动页面,则不会触发任何悬停事件。有没有办法改变它,只要指针悬停在div上,它会触发悬停事件,无论用户是否使用鼠标或鼠标滚轮将其移动到那里?

$(window).load(function() {
  $(document).bind('mousewheel', function(e) {
    console.log(e.pageX);
    console.log(e.pageY);
    var e1 = $.Event('mouseenter');
    e1.pageX = e.pageX + 1;
    e1.pageY = e.pageY;
    $('img').trigger(e1);

    var e2 = $.Event('mousemove');
    e2.pageX = e.pageX + 1;
    e2.pageY = e.pageY;
    $('img').trigger(e2);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

编辑:上面的代码触发了悬停事件,但它没有特别选择任何图像,它只是在每次鼠标移动时触发悬停事件。

1 个答案:

答案 0 :(得分:2)

这可能有效:

var x = 0, y = 0;

$(document).bind('mousemove', function(event) {x = event.clientX; y = event.clientY;});

$(document).bind('mousewheel', function(e1) {
    var rand = Math.floor(Math.random*2) ? 1 : -1;
    X = x+rand;
    Y = y;
    setTimeout(function() {$("body").trigger($.Event("mousemove", {clientX: X, clientY: Y}));}, 400);
});