我使用了一个教程在mouseover上获得这个功能:
function arcTween(outerRadius, delay) {
return function () {
d3.select(this).transition().delay(delay).attrTween("d", function (d) {
var i = d3.interpolate(d.outerRadius, outerRadius);
return function (t) { d.outerRadius = i(t); return arc(d); };
});
};
}
Run Code Online (Sandbox Code Playgroud)
我以这种方式将它添加到饼图的某些部分:
.on("mouseover", arcTween(outerRadius, 0, 0))
Run Code Online (Sandbox Code Playgroud)
但是,我也为饼图中的每个切片添加了svg文本标签,并希望这些标签在您将鼠标悬停在不同切片上时消失.所以我根据索引创建了这些标签ID,然后写了这两个方法:
function visibilityShow(dataSetSize) {
for (var i = 0; i < dataSetSize; i++) {
$("#" + i).show();
}
}
function visibilityHide(index, dataSetSize) {
for (var i = 0; i < dataSetSize; i++) {
if (i === index) {
$("#" + i).show();
} else { …Run Code Online (Sandbox Code Playgroud)