2014-01-27 1 views
0

В этом jsfiddle реализована функция force layout со специальной функцией выделения выделенного узла (вместе со всеми ссылками с этого узла и узлами, расположенными на другом конце этих ссылок).Схема расположения D3 с подсветкой и выцветанием

В большинстве случаев метод работает, однако, когда я ударяю границу при перетаскивании выбранного узла, внезапно весь макет выделяется и возвращается в желаемое состояние после того, как узел будет удален от границы. Это показано на следующей анимации:

(об ошибке при перетаскивании УЗЕЛ HITS стены)

enter image description here

Можно ли это исправить?

(Этот пример реализуется на основе this question, там можно прочитать объяснение кода и т.д.)

EDIT: Пожалуйста, смотрите Dragging and highlighting для иного подхода к этой проблеме.

enter image description here

Это достигается путем добавления строк:

force.drag().on('drag', fade(.1)); 
force.drag().on('dragend', fade(1)); 

Модифицированный скрипку here.

+0

Я думаю, что это всего лишь артефакт, исходящий от курсора, который больше не находится над выбранным узлом. При ударе по стене, как видно на рисунке, вы выходите из выбранного узла. Если вы осторожны, чтобы попасть в стену и по-прежнему держать курсор над выбранным узлом, то он работает. Но, если я говорю очевидное, то вы ищете способ идентифицировать, когда узел попадает на границу svg viewport и убедитесь, что курсор остается на нем? – FernOfTheAndes

+0

Вы правы! @FernOfTheAndes Теперь, когда вы сказали мне это, мне интересно, пытаюсь ли я что-то сделать или просто оставить его как ti ... – VividD

+0

Должен ли я опубликовать это как ответ, который вы можете принять? У меня есть задача догнать Ларса, скажем, через пару дней ... – FernOfTheAndes

ответ

1

Я думаю, что это всего лишь артефакт, исходящий от курсора, который больше не находится над выбранным узлом. При ударе по стене, как видно на рисунке, вы выходите из выбранного узла. Если вы осторожны, чтобы попасть в стену и по-прежнему держать курсор над выбранным узлом, то он работает.

На мой взгляд, это не ошибка и не функция, но желаемое поведение: когда узел больше не выбран, эффект hightlight исчез.

+0

Я принимаю ответ, потому что он определенно проливает свет на ситуацию. Но пользователю сложно объяснить - он не выпустил мышь, и подсветка была такой, как если бы он это делал. Но, конечно, помогает, если мы знаем, что происходит и почему. Благодаря! – VividD

+0

Я согласен и извиняюсь, если я прозвучал пренебрежительно. ситуация с пользователем ... это нелегко. Я потратил некоторое время на размышления о таком решении, как захват координат мыши и что-то делать, когда они были вне видового экрана, и т. Д. Вы думаете о преследовании какого-либо решения? – FernOfTheAndes

+0

Нет, не в это время. Не было ничего пренебрежительного, я просто думал вслух, комментируя и т. Д. ... Еще раз спасибо! :) – VividD

 Смежные вопросы

  • Нет связанных вопросов^_^