/ / Ograniczanie ruchu węzła do pojedynczej osi - cytoscape.js

Ograniczanie ruchu węzła do pojedynczej osi - cytoscape.js

Za pomocą Cytoscape.js, w jaki sposób mogę ograniczyć ruch węzła dopojedyncza (tj. albo x albo y) oś? Chciałbym móc to zrobić, aby węzeł mógł być przeciągany tylko pionowo lub poziomo, ale nie oba. Innymi słowy, chciałbym zablokować węzeł, ale tylko na jednej osi. Nie jestem pewien, czy jest to możliwe, i nie byłem w stanie znaleźć niczego w dokumentacji, która wspominała o tym konkretnie, więc pomyślałem, że zapytam.

Z góry dziękuję!

Odpowiedzi:

1 dla odpowiedzi № 1

Użyj automove rozszerzenie, które pozwala ustawić dowolne ograniczenia dotyczące pozycjonowania węzłów, które lubisz. Ograniczenie wartości x jest tak proste, jak przekazanie a (x, y) => { return { xConst, y }; } funkcja do rozszerzenia.


0 dla odpowiedzi nr 2

W końcu znalazłem sposób na przybliżenie oczekiwanego rezultatu, nasłuchując dla każdego węzła free wydarzenie i ustawienie jego pozycji na taką, jaka była mi potrzebna. To nie ogranicza włóka węzłów do pojedynczej osi, ale ogranicza rzut węzłów do pojedynczej osi, jeśli ma to sens.

Oto opis Cytoscape.js free zdarzenie:

wolny: gdy element zostanie uwolniony (tzn. uwolnij się od chwytania)

od: http://js.cytoscape.org/#events/collection-events