我有一个d3示例,其中x轴上的平移会导致加速摇摄。也就是说,当我按住左边的按钮并移动指针时,数据就会以非线性的方式平移。这可能在一个示例中得到最好的说明,参见:
https://bl.ocks.org/sachams/d8621093ebb8181d50fe
我读到了一些帖子,这表明问题在于,我将缩放器附加到捕获鼠标输入的相同元素上,并且不得不在它们之间放置一个额外的元素(d3.behavior.zoom jitters, shakes, jumps, and bounces when dragging)。
我尝试过各种组合,添加不同的子元素,并将我的变焦器附加到不同的地方,但找不到起作用的组合。
有什么建议吗?
发布于 2015-02-04 22:31:07
问题是,在zom处理程序函数(update())中,您正在重置x比例的域:
x.domain(scope.range);
// ...
Zoomer.x(x) // update the zooming behavior to match the domain第一行是引起抖动的原因。在调用此代码之前,您已经在缩放行为直接调用的函数中将scope.range设置为x.domain(),因此这是不必要的。第二行也没有必要,因为您已经告诉缩放行为“跟踪”x标度,但在这种情况下不会造成任何伤害。
https://stackoverflow.com/questions/28213909
复制相似问题