从3.x系列d3切换到模块化4.x +版本时尝试调试问题。我正在使用基于d3的dimple.js进行开发。
通过过渡重新绘制图形时出现问题, x轴刻度标签放错了位置。使用旧版本不会发生这种情况。 JSFiddle具有正确的旧行为。 JSFiddle具有不正确的新行为。
问题似乎是rotate
的第三个参数:正确的标签具有非零值,例如
transform="rotate(90,0,231.90625) translate(-5, 0)"
放错位置的标签的第三个参数为0。
transform="rotate(90,0,0) translate(-5, 0)"
我在尝试调试时发现的一些笔记:
ease-cubic-in-out
,但是如果开发人员在draw()
中指定0毫秒,则过渡将被完全跳过,标签将始终正确显示。getBBox()
元素上调用text
并使用结果高度来填充旋转值:请参见dimple 2.2 draw()的第300行和第
dimple 2.3 draw()中的301。使用新版本时,边界框在元素上将为空,这些元素将被错误定位:SVGRect {x: 0, y: 0, width: 0, height: 0}
https://github.com/d3/d3/blob/v3.5.17/d3.js
中的第8983行以及
https://github.com/d3/d3-axis/blob/master/src/axis.js