我正在尝试使用D3的拖动功能“拖动一个点”(一个svg圈)。为了保持模块化,我有多个文件。从“Dot类”文件中,在“App.js”文件中实例化一个点有效!然而,阻力行为趋于平缓。
我已经在这一段时间,修补和“谷歌搜索”。现在拉头发。我需要第二眼。我错了什么?
谢谢!
Dot.js:
import * as d3 from "d3";
export class Dot {
constructor(cx, cy, rad){
this.cx = cx;
this.cy = cy;
this.radius = rad;
this.svg = null;
this.dot = null;
this.width = 199;
this.height = 533;
}
buildDot(){
this.dot =
d3.select("body")
.append("svg")
.attr("width",this.width)
.attr("height",this.height)
.append("circle")
.attr("cx",this.cx)
.attr("cy",this.cy)
.attr("r",this.radius);
return this.dot;
}
onDrag(){
console.log("dragging");
}
}
App.js:
import {Dot} from './js/Dot';
import * as d3 from "d3";
(function(){
var dot = new Dot(200, 200, 99).buildDot();
console.log(dot);
dot.call(d3.drag().on("drag", dot.onDrag));
})();
答案 0 :(得分:2)
确定。所以,问题是,当我建立" dot
,我随后要求drag
eventlistener在onDrag
元素上调用dot
。这是,我没有从" Dot"中调用onDrag
方法。类实例。
这么多时间......在我来到这里之前,我需要一个健全的检查方式。