0
現在、私はデータの視覚化にズーム機能を実装しようとしています。ときどきエラーが発生する "d3.min.js:1キャッチされていないTypeError:t.applyは関数ではありません"ズームまたはsvg要素を移動しようとすると。これはd3ライブラリ内の内部エラーのようです。D3 Zoom TypeError:t.applyは関数ではありません
var height = $("#content").height();
var width = $("#content").width();
var svg = d3.select("#content").append("svg")
.attr("width", width)
.attr("height", height)
.attr("class", "svg_canvas")
.append("g")
.call(d3.behavior.zoom().scaleExtent([1, 8]).on("zoom", zoom))
.attr("transform", "translate(" + (width/2.0) + "," + (height /2.0)+ ")")
.append("g")
.attr("class", "interaction_group");
zoom_layer = svg;
//Overlay for zooming
svg.append("rect")
.attr("class", "overlay")
.attr("width", width)
.attr("height", height)
.attr("transform", "translate(" + (-width/2.0) + "," + -(height/2.0) + ")");
イベントハンドラ "ズーム" は本当に基本的なものです:
function zoom() {
zoom_layer.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
}
実装は、最新のD3.js V3バージョンで実現しました。
あなたがフィドルを入れない限り、非常に難しいです... – Cyril
あなたは正しいです。私は詳細をより詳細に分析し、追加の依存関係を持って発生します。また、reveal.jsのプラグインとしてzoom.jsを追加しました。 d3ズーム機能とzoom.jsは一緒に機能しません。 – Oliver