2015-10-02 25 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上实现。