【发布时间】:2014-07-15 05:49:47
【问题描述】:
我正在使用 d3.v2.js 来呈现饼图和一个刻度盘(在中心)以指向饼图的选定组件。拨号代码如下
function createDialIndicator(dialerData, subComponentId, subComponentsCount, group){
var offsetAngle = (360/subComponentsCount)/2;
var dialAngle = ((360/subComponentsCount)*(parseInt(subComponentId.charAt(subComponentId.length-1))))-offsetAngle;
var dialGroup = group.append("g")
.attr("class","dialGroup");
dialGroup.append("path")
.attr("class","dial")
.attr("d",dialerData)
.attr("fill","gold");
d3.selectAll(".dialGroup")
.transition()
.duration(1000)
.attr("transform", "rotate(" + dialAngle + ")");
}
function updateDialIndicator(subComponentId, subComponentsCount){
var offsetAngle = (360/subComponentsCount)/2;
var dialAngle = ((360/subComponentsCount)*(parseInt(subComponentId.charAt(subComponentId.length-1))))-offsetAngle;
d3.selectAll(".dialGroup")
.transition()
.duration(1000)
.attr("transform", "rotate(" + dialAngle + ")");
}
我在初始渲染时调用 createDialIndicator() 并调用 updateDialIndicator() 以将表盘更改为指向我单击的组件。 问题是: d3 在旋转时在 createDialIndicator() 中抛出以下错误,但在 updateDialIndicator() 中没有。我可以知道会是什么问题吗?
错误:属性 transform="null" 的值无效
【问题讨论】:
-
您是否尝试在过渡前设置初始旋转 (0)?
d3.selectAll(".dialGroup").attr("transform", "rotate(0)").transition()... -
谢谢拉尔斯,它有效
-
太好了,我会添加它作为参考答案。
标签: d3.js null rotation transform transition