2016-04-11 4 views
2

Учитывая следующие гипотетические функции:Elm - абсолютное положение элемента

bowlingBall : Form -> Signal Element 
bowlingBall shape = 
    makeMovable shape 

Как бы один получить абсолютное положение

bowlingBall greenFilledCircle?

Я заметил, что когда я отлаживаю скомпилированную страницу, содержащую элемент с возможностью перетаскивания, хром отслеживает позицию под свойством transform: matrix(...) - это то, что мы можем задействовать в использовании функций вяза, или требуется какое-то взаимодействие быть занятым?

+0

Мысль заключалась в том, что определенный элемент, такой как 'bowlingBall', должен быть перемещен с помощью последовательности команд. Сохранение записи обновления должно содержать текущую позицию элемента. – category

+0

Еще одна мысль заключается в том, что правильный способ сделать это в JS, по-видимому, использует 'getBoundingClientRect (bowlingBall)' - однако JS нужно будет встроить в html-файл для взаимодействия - лучше использовать вышеупомянутый подход. – category

ответ

1

Короткий ответ заключается в том, что вы не можете напрямую делать то, что вы просите за Element. Есть pull request, который позволит вам сделать это, но он еще не слит.

Точно так же не является хорошим способом непосредственного контроля положения Form.

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

Это не идеально; в частности, громоздкое преобразование между системами координат, используемыми Mouse, и система координат, используемая Form с, становится намного более раздражающей без этой возможности, особенно если ваши Form с не обитают на холсте в верхнем левом углу окна ,

+0

Спасибо, по совпадению, PR столкнулся с порядком в 1 мин примерно во время вашего ответа. – category

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