【发布时间】:2018-01-13 18:25:45
【问题描述】:
D3 气泡图。分组和定位 svg:circles 和 svg:text 元素
- 函数 render() 像往常一样创建一个 svg 元素、圆形和文本。此函数包括 .exit.remove 更新模式。
- runSimulation() 在页面打开和 createChart() 函数后执行。
- 点击一个圆圈再次执行runSimulation(),删除圆圈 使用 .exit().remove() 等。
简化代码:
fundtion render (){
const nodeEnter = this.nodeElements
.enter()
.append('svg:svg');
nodeEnter
.append('circle')
.on('click',runSimulation);
const textEnter = this.textElements
.enter()
.append('svg:text');
}
this.runSimulation(){
this.render();
function ticked(){
this.nodeElements
.attr('cx', cxValue)
.attr('cy', cyValue):
}
this.simulation.nodes.on.('tick',ticked);
}
- 在第一次运行时,cx 和 cy 属性被附加到 svg:svg,而圆圈没有这些属性,所有内容都呈现在左上角(也使用 svg:g)
- 在点击动作时,runSimulation 会第二次执行;现在圆获得了附加的 cx 和 cy 属性,并且所有元素都移动到了预期的位置。
-我正在寻找一种在第一次渲染时将 cx cy 属性获取到圆的方法,以便父元素不会在 x=0 y =0 处聚集,或者将 x 和 y 获取到 svg:svg;显示的模式不起作用,感谢您的帮助。
【问题讨论】:
-
cx/cy 在哪里生成? Ionic NavParms 能够将参数从调用页面传递到被调用页面,因此您可以在那里设置它们。 ionicframework.com/docs/api/navigation/NavParams