重新渲染svg时事件监听的问题

时间:2015-10-02 13:51:24

标签: javascript d3.js svg javascript-events

我有下一个情况: 我制作了一个绘制图表的库。我在那里放大了。当您触发'mousewheel'事件时 - 使用新比例重新渲染图表。但几乎所有浏览器都存在问题(除了chrome)。在镀铬中,您在一个车轮移动中多次获得“鼠标滚轮”事件。在其他浏览器中,您获得事件,图表重新渲染,并且没有更多事件,您应该采取更多动作来获取事件。有人知道如何解决这个问题吗?或者我的代码架构可能不好?

这里是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-container并重新构建其中的元素

谢谢你,伙计

1 个答案:

答案 0 :(得分:1)

您应该wheel个事件而不是mousewheel个事件,因为鼠标滚轮事件仅在Chrome上实现。