Javascript 在d3js中设置此元素的动画
好的,我有下面的代码示例,其中svg元素中有圆圈。每个圆都有一个单击事件,我正在尝试为被单击的圆设置动画。目前所有的圆都是动画,因为我指的是气泡对象。我想要的是指单击的对象本身,而不是其他对象:Javascript 在d3js中设置此元素的动画,javascript,d3.js,Javascript,D3.js,好的,我有下面的代码示例,其中svg元素中有圆圈。每个圆都有一个单击事件,我正在尝试为被单击的圆设置动画。目前所有的圆都是动画,因为我指的是气泡对象。我想要的是指单击的对象本身,而不是其他对象: var data_items=[100,200,300]; var svg = d3.select("#chart") .append("svg").attr("width", 800).attr("height", 600); var g = svg.selectAll(".
var data_items=[100,200,300];
var svg = d3.select("#chart")
.append("svg").attr("width", 800).attr("height", 600);
var g = svg.selectAll(".bubbleContainer")
.data(data_items)
.enter().append("g")
.attr("class","bubbleContainer");
var bubble = g.append("circle")
.attr("class","bubble")
.attr("cx", function(d) {
return d;
})
.attr("cy", function(d) {
return d
})
.attr("r", function(d) {
return d/2
})
.on("click",function(d){
bubble
.transition()
.duration(1000)
.attr("r",1000)
})
非常感谢您的帮助
谢谢 您可以使用
d3.event.target
访问事件处理程序中正在单击的元素。例如,请参阅。拉尔斯·科托夫(Lars Kotthoff)所写的将起作用。或者——我不确定哪一个更地道:
在click处理程序中,this
上下文引用单击的DOM元素
因此,以下几点也可以做到:
.on("click",function(d){
d3.select(this)
.transition()
.duration(1000)
.attr("r",1000)
});
米塔米特,你就是那个男人!这是你两次在d3问题上帮助我。万分感谢:我的荣幸。事实上,第一次我没有给你一个完整的答案,但不管怎样,我喜欢你的地图项目(看到了你写的关于从自然地球导出geojson数据的博文)。哇!我希望你不要为了这个问题而重复整个例子。顺便说一句,这太棒了,谢谢你。是的,这也很有效