【发布时间】:2014-08-01 07:50:18
【问题描述】:
我正在创建一个示例,说明使用 D3 拖动行为和 CSS {display: table} 样式的可调整大小单元格的布局。它适用于水平拖动,但不适用于垂直拖动。对于垂直调整大小,d3.event.y 提供的值对我来说没有意义。
这是一个fiddle,显示了有效的水平拖动和损坏的垂直拖动。拖动时查看控制台输出,可以看到d3.event 返回的值与d3.mouse() 在水平拖动时返回的值相匹配,但在垂直拖动时它们是不同的。
我可以通过使用d3.mouse() y 坐标而不是d3.event y 坐标来修复此行为。要查看这一点,请注释掉“DOESN'T WORK”行并取消注释“WORKS”行。但是,我不明白为什么需要这样做,而且似乎不太通用,因为我必须假设鼠标输入而不是使用更通用的 d3.event。
这是一个错误,还是我无法理解这里的某些内容?
请注意,this question 似乎遇到了同样的问题,但使用的是 HTML 表格而不是 CSS 表格。我认为记录此问题在两种情况下都发生会很有帮助。
还要注意,注释掉实际上进行垂直调整大小的两行,用“RESIZE CELLS”注释,使d3.event 正常工作。当然,那时表格不会调整大小。这表明调整导致 d3.event 误入歧途的 div 大小的行为有关。
【问题讨论】: