D3.JS'zoom'未定义

时间:2016-08-08 19:45:15

标签: javascript html d3.js svg zoom

我正在尝试使用此代码进行简单的缩放/平移解决方案

  var map = document.getElementById('map'),
      svg = d3.select('#map')
            .call(d3.behavior.zoom().on("zoom", function () {
                svg.attr("transform", "translate(" + d3.event.translate + ")" + " scale(" + d3.event.scale + ")")
            }))
            .append('g');

但在this时刻,它给出了:

Uncaught TypeError: Cannot read property 'zoom' of undefined

在html中,我有这个:

<svg id="map" class="map" viewBox="0 0 8000 2000"></svg>

P.S。灵感来自this

1 个答案:

答案 0 :(得分:8)

尝试以下代码: 在d3.js的v4中, d3.behavior.zoom 更改为 d3.zoom

var svg;

svg= d3.select("svg")
        .call(d3.zoom().on("zoom", function () {
              svg.attr("transform", d3.event.transform)
         }))
        .append("g");