В этом jsfiddle реализована функция force layout
со специальной функцией выделения выделенного узла (вместе со всеми ссылками с этого узла и узлами, расположенными на другом конце этих ссылок).Схема расположения D3 с подсветкой и выцветанием
В большинстве случаев метод работает, однако, когда я ударяю границу при перетаскивании выбранного узла, внезапно весь макет выделяется и возвращается в желаемое состояние после того, как узел будет удален от границы. Это показано на следующей анимации:
(об ошибке при перетаскивании УЗЕЛ HITS стены)
Можно ли это исправить?
(Этот пример реализуется на основе this question, там можно прочитать объяснение кода и т.д.)
EDIT: Пожалуйста, смотрите Dragging and highlighting для иного подхода к этой проблеме.
Это достигается путем добавления строк:
force.drag().on('drag', fade(.1));
force.drag().on('dragend', fade(1));
Модифицированный скрипку here.
Я думаю, что это всего лишь артефакт, исходящий от курсора, который больше не находится над выбранным узлом. При ударе по стене, как видно на рисунке, вы выходите из выбранного узла. Если вы осторожны, чтобы попасть в стену и по-прежнему держать курсор над выбранным узлом, то он работает. Но, если я говорю очевидное, то вы ищете способ идентифицировать, когда узел попадает на границу svg viewport и убедитесь, что курсор остается на нем? – FernOfTheAndes
Вы правы! @FernOfTheAndes Теперь, когда вы сказали мне это, мне интересно, пытаюсь ли я что-то сделать или просто оставить его как ti ... – VividD
Должен ли я опубликовать это как ответ, который вы можете принять? У меня есть задача догнать Ларса, скажем, через пару дней ... – FernOfTheAndes