d3.js - D3画布强制定向布局底部问题
问题描述
我试图在布局中拖动时包含/绑定节点。我尝试修改示例Force Dragging III Canvas并添加以下代码:
function dragstarted() {
if (!d3.event.active) simulation.alphaTarget(0.3).restart();
d3.event.subject.fx = Math.max(10, Math.min(width - 10, d3.event.subject.x)) ;
d3.event.subject.fy = Math.max(10, Math.min(width - 10, d3.event.subject.y)) ;
}
function dragged() {
d3.event.subject.fx = Math.max(10, Math.min(width - 10, d3.event.x));
d3.event.subject.fy = Math.max(10, Math.min(width - 10, d3.event.y));
}
虽然我能够将运动限制在顶部、左右方向,但底部拖动似乎有问题;到达矩形底部后它不会停止。请帮忙。
解决方案
我猜你只是因为使用width
x 轴和 y 轴的变量而犯了一个错误。height
像这样使用 y 轴的变量应该没问题:
function dragstarted() {
if (!d3.event.active) simulation.alphaTarget(0.3).restart();
d3.event.subject.fx = Math.max(10, Math.min(width - 10, d3.event.subject.x)) ;
d3.event.subject.fy = Math.max(10, Math.min(height - 10, d3.event.subject.y)) ;
}
function dragged() {
d3.event.subject.fx = Math.max(10, Math.min(width - 10, d3.event.x));
d3.event.subject.fy = Math.max(10, Math.min(height - 10, d3.event.y));
}
推荐阅读
- c# - Unity C# - 当类被销毁时,无限循环线程是否终止?
- javascript - 不滚动时滚动条消失
- java - Ternary operator returns an unexpected output
- mysql - mysql插入存储过程抛出错误
- python - 如何查找和存储达到大于每行中第一个值的值所需的列数?
- r - 由于字符变量,在 R 中运行 T 测试时出现错误消息
- django - 如何覆盖 Django 通用基础视图的调度方法?
- java - react-native-notifications 在 iOS 上工作,在 Android 上失败
- python - Numpy Array,删除列中的重复项,直到新值
- javascript - 在 Raspberry PI 4 上获取蓝牙设备的电池电量