Нарисуйте стрелку между двумя divs
Я ищу решение вопроса, который, как я ожидал, будет уже решен.
Но я видел только крупные проекты с множеством функций, но простого решения.
На самом деле мне нужно получить что-то вроде этого:
![http://i.imgur.com/iktvmLK.png]()
Итак, чтобы получить рисунок стрелки над div, содержащим некоторые квадраты (divs)
<div id="container">
<div class="white_field"></div>
<div id="1" class="black_field">
<br style="clear:both;">
<div id="2" class="black_field">
<div class="white_field"></div>
<br style="clear:both;">
<div id="3" class="black_field">
<div class="white_field"></div>
</div>
Я смотрел в холсте, но наткнулся на полотно, которое не было видно за моими div (возможно, какой-то z-index должен помочь)
Но все же странно, что я не мог найти готового решения проблемы, которая, как мне кажется, часто возникает.
(чтобы объяснить что-то на сайте, стрелки почти обязательны)
Ответы
Ответ 1
Вы можете рассмотреть SVG.
![enter image description here]()
В частности, вы можете использовать линию с концом маркера с контуром стрелки.
Обязательно установите orient = auto, чтобы стрелка была повернута в соответствии с наклоном линии.
Поскольку SVG является элементом DOM, вы можете управлять начальным/конечным положением строки в javascript.
Вот код и скрипт: http://jsfiddle.net/m1erickson/9aCsJ/
<svg width="300" height="100">
<defs>
<marker id="arrow" markerWidth="13" markerHeight="13" refx="2" refy="6" orient="auto">
<path d="M2,2 L2,11 L10,6 L2,2" style="fill:red;" />
</marker>
</defs>
<path d="M30,150 L100,50"
style="stroke:red; stroke-width: 1.25px; fill: none;
marker-end: url(#arrow);"
/>
</svg>
Ответ 2
Используйте библиотеку, например JSPlumb: https://jsplumbtoolkit.com/
Ответ 3
Его довольно просто создать стрелку. См. этот пример в CSS-трюках.
Возможно, используя это внутри контейнера, который имеет линию стрелок, может это сделать.
Ответ 4
В соответствии с вашими потребностями вам обязательно нужно проверить использование Canvas и jCanvas. Это делает такие вещи ветерок.
Я отважился по пути делать все с DIV и jQuery, но он всегда не соответствовал интерактивности и качеству. Это действительно открывает двери, не добавляя сложность кода.
Надеюсь, что это помогает другим, как и я.
В JP
EDIT 2017 05 20:
У меня был пример, связанный с песочницей jCanvas со всем кодом, который вам нужен, чтобы нарисовать стрелку между двумя элементами и перетащить оба этих элемента вокруг холста. Однако эта ссылка больше не работает, и у меня нет кода где-либо еще.
Итак, я все еще думаю, что вы должны проверить jCanvas, но, к сожалению, у меня нет кода для запуска.