2015-10-02 57 views
0

我有下一種情況: 我做了一個繪製圖表的lib。我在那裏放大。當你用新的比例觸發'鼠標滾輪'事件 - 圖表重新渲染。但幾乎所有的瀏覽器都有問題(chrome除外)。在Chrome中,您一次就可以多次獲得「鼠標滾輪」事件。在其他瀏覽器中,您獲得事件,圖表重新渲染,並且沒有更多事件,您應該採取更多舉措來獲取事件。有人知道如何解決這個問題嗎?或者,也許我有一個糟糕的代碼體系結構?在重新渲染svg時收聽事件的問題

這裏是wheelHandler:

function wheelHandler() { 
    var pad = d3.event.type === 'mousewheel' ? d3.event.wheelDeltaY/10 : d3.event.detail, 
    newKoefficient = koefficient + pad; 
    newKoefficient = Math.max(newKoefficient, config.minZoom); 
    newKoefficient = Math.min(newKoefficient, config.maxZoom); 
    if (newKoefficient !== koefficient) { 
     koefficient = newKoefficient; 
     render(); 
    } 
} 

雖然渲染我排空SVG容器和重樓元素在它

謝謝你,夥計們

+0

@RobertLongson thx,我作了修改;) – Foker

+0

@RobertLongson我抓住了兩個事件 - 'mousewheel'和'DOMMouseScroll' – Foker

+0

@RobertLongson謝謝你隊友!現在它可以工作,但我仍然有問題,當我使用觸控板而不是鼠標。你不知道我該如何解決它? – Foker

回答

1

你應該wheel事件,而不是mousewheel事件mousewheel事件只在Chrome上實現。