2016-06-08 47 views
0

默認情況下,如果用戶使用鼠標滾輪向下滾動頁面,則不會觸發任何懸停事件。有沒有辦法改變它,只要指針懸停在div上,它會觸發懸停事件,無論用戶是使用鼠標還是鼠標滾輪將其移動到那裏?有沒有辦法讓一個鼠標滾輪觸發Javascript中的「懸停」事件?

$(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>

編輯:上面的代碼被觸發懸停事件,但它不是特別選擇任何圖像,它只是觸發每次鼠標移動懸停事件。

+0

你嘗試觸發'mousemove'事件滾動停止後? – Mottie

+0

我不確定觸發mousemove事件是什麼意思。是否有可能使用JavaScript移動鼠標? – user1023465

+0

是的,可以_simulate_ mousemove事件。 –

回答

1

這可能會實現:

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); 
}); 
+0

我的代碼與你的很相似,但我想觸發圖像上的懸停事件,並使用$('img')。trigger不會特別選擇一個圖像... – user1023465

+0

觸發身體上的movemouse事件應激活鼠標當前結束的元素上的css懸停事件。 –

+0

我試過了,不幸的是它沒有觸發任何東西。 – user1023465

相關問題