2017-07-25 62 views
1

我在客戶端網站上運行幻燈片。幻燈片放映動畫每張幻燈片,並依賴鼠標的滾輪,儘管它也在觸摸屏設備中「滑動」。將箭頭鍵映射到滾輪功能?

這裏需要說明的是,頁面並不是實際上是當使用滾輪時,它只會激活下一張幻燈片動畫。該網頁從來沒有真正的傳統意義上... ...

但有些人不使用滾輪,他們使用鍵盤箭頭。

有沒有一種方法,理想情況下使用JavaScript,強制箭頭鍵模擬鼠標滾輪單滾動?

我對缺少代碼或以前的努力表示歉意 - 我一直無法找到任何與此問題有關的問題,並且代碼很好地嵌入到幻燈片擴展中。我希望添加我自己的JS來補充基本幻燈片。

+1

將聽衆添加到箭頭鍵上怎麼樣? – marzelin

+0

你可以修改幻燈片的代碼,或者你是否使用了一個你想要乾淨連接的庫? – msanford

+1

我寧願在頂部添加我自己的庫,因爲我確信我的客戶端在某些時候會更新Slider並丟失我編寫的任何其他代碼。這就是說,我不反對這個想法。 – Reverend2100

回答

0

你可以嘗試這樣的事情。這不是一個實際的解決方案,而是一種方法。

$('#someContainer').scroll(function(){ 
     $("#target").keydown(); 
    }) 
0

你可以做這樣的事情:

yourElement.addEventListener('onkeydown', function(e) { 
    var key = e.which || e.keyCode; 
    if (key === 37) { // arrow left 
     // Your code here 
    } else if (key === 39) { // arrow right 
     // Your code here 
    } 
}); 
2

你可以嘗試通過代碼中使用這樣的觸發畫廊元素的鼠標滾輪事件:

var element = <reference to the element the mousewheel events are bound to> 

document.addEventListener('keydown', function(e){ 
    var event = new Event('MouseEvents'); 
    event.initEvent('mousewheel', true, true); 

    switch(e.keyCode){ 
     case '37': 
      event.wheelDelta = -1; 
      element.dispatchEvent(event); 
      break; 
     case '39': 
      event.wheelDelta = 1; 
      element.dispatchEvent(event); 
      break; 
    } 
}); 

https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events

+1

@msanford ty for edit ;) – Bellian

+0

TY爲一個很好的答案。 – msanford