Javascript 在复杂转换中具有不同字体大小的文本
所以我已经实现了Gerardo的以下优秀建议,但是接下来的转换否定了两种不同的字体权重,它们都以粗体结尾 前任职务: 代码Javascript 在复杂转换中具有不同字体大小的文本,javascript,d3.js,Javascript,D3.js,所以我已经实现了Gerardo的以下优秀建议,但是接下来的转换否定了两种不同的字体权重,它们都以粗体结尾 前任职务: 代码 text.enter() .append(“文本”) .attr(“dy”,“.35em”) .style(“不透明度”,0.01) .style(“字体大小”,700) .文本(功能(d){ 返回(d.data.NAME+“:”); }) .附加(“tspan”) .style(“字体大小”,200) .文本(功能(d){ 返回d.data.amount; }); 文本
text.enter()
.append(“文本”)
.attr(“dy”,“.35em”)
.style(“不透明度”,0.01)
.style(“字体大小”,700)
.文本(功能(d){
返回(d.data.NAME+“:”);
})
.附加(“tspan”)
.style(“字体大小”,200)
.文本(功能(d){
返回d.data.amount;
});
文本
.transition()
.持续时间(1400)
.style(“不透明度”,1)
.style(“字体大小”,700)
.attrTween(“转换”,函数(d){
这个。|电流=这个。|电流| d;
var interpolate=d3.interpolate(该电流,d);
该值为._电流=插值(0);
返回函数(t){
var d2=插值(t);
var pos=外表面质心(d2);
位置[0]=_半径*(中间角(d2)
为什么要在转换中“应用”字体大小样式?文本
变量包含哪些选项?我的猜测是,tspan
@标记很好,即使没有重新应用字体权重,我仍然需要最后的.text(
)来隐藏一些标签,而这最后一步似乎使所有文本成为一个权重
text.enter()
.append("text")
.attr("dy", ".35em")
.style("opacity", 0.01)
.style("font-weight", 700)
.text(function(d) {
return (d.data.NAME + ": ");
})
.append("tspan")
.style("font-weight", 200)
.text(function(d) {
return d.data.amount;
});
text
.transition()
.duration(1400)
.style("opacity", 1)
.style("font-weight", 700)
.attrTween("transform", function(d) {
this._current = this._current || d;
var interpolate = d3.interpolate(this._current, d);
this._current = interpolate(0);
return function(t) {
var d2 = interpolate(t);
var pos = outerArc.centroid(d2);
pos[0] = _radius * (midAngle(d2) < Math.PI ? 0.90 : -0.90);
return "translate(" + pos + ")";
};
})
.styleTween("text-anchor", function(d) {
this._current = this._current || d;
var interpolate = d3.interpolate(this._current, d);
this._current = interpolate(0);
return function(t) {
var d2 = interpolate(t);
return midAngle(d2) < Math.PI ? "start" : "end";
};
})
.text(function(d) {
if (d.endAngle - d.startAngle < 8.2 * Math.PI / 180) {
return ""
}
return (d.data.NAME + ": " + d.data.amount);
})
;