Представьте, что у меня есть график с большими прямоугольниками. Я хочу перетащить круг с трафарета и разрешить его размещение только в пределах уже существующего прямоугольника. Кроме того, когда пользователь перетаскивает круг по графику (решая, куда его опустить) и круг входит в прямоугольник, я хочу изменить цвет прямоугольника.
По сути, круги разрешены только в прямоугольниках, и я хотел бы выделить прямоугольник, прежде чем пользователь уронит круг.
Возможно ли это с помощью суставов или rappid?
Это возможно. Об этом есть даже небольшая, хорошо скрытая демонстрация на сайте JointJS. (https://resources.jointjs.com/docs/jointjs/v2.1/demo/shapes/shapes.devs.html)
Вам просто нужно повозиться с параметрами бумаги:
Установите embeddingMode: true
, если вы еще этого не сделали, и добавьте класс встраивания в основные моменты следующим образом (очевидно, определите некоторые стили в вашем CSS для этого класса):
highlighting: {
'embedding': {
name: 'addClass',
options: {
className: 'highlighted-parent'
}
}
}
Наконец, реализуйте validateEmbedding: function(childView, parentView) {}
со своими собственными правилами.