Соединение строк с svgs стоило мне попыток, и это сработало отлично ... во-первых, Scalable Vector Graphics (SVG) - это формат векторного изображения на основе XML для двухмерной графики с поддержкой интерактивности и анимации. Изображения SVG и их поведение определяются в текстовых файлах XML. вы можете создать SVG в HTML с помощью <svg>
тега. Adobe Illustrator - одно из лучших программ, используемых для создания сложных SVG с использованием путей.
Процедура соединения двух div с помощью строки:
создайте два div и дайте им любую позицию, как вам нужно
<div id="div1" style="width: 100px; height: 100px; top:0; left:0; background:#e53935 ; position:absolute;"></div>
<div id="div2" style="width: 100px; height: 100px; top:0; left:300px; background:#4527a0 ; position:absolute;"></div>
(для пояснения я делаю некоторые встроенные стили, но всегда полезно создать отдельный файл css для стилизации)
<svg><line id="line1"/></svg>
Тег Line позволяет нам провести линию между двумя указанными точками (x1, y1) и (x2, y2). (для справки посетите w3schools.) мы еще не указали их. потому что мы будем использовать jQuery для редактирования атрибутов (x1, y1, x2, y2) тега строки.
в <script>
теге написать
line1 = $('#line1');
div1 = $('#div1');
div2 = $('#div2');
Я использовал селекторы, чтобы выбрать два div и строку ...
var pos1 = div1.position();
var pos2 = div2.position();
position()
Метод jQuery позволяет нам получить текущую позицию элемента. Для получения дополнительной информации посетите https://api.jquery.com/position/ (вы также можете использовать offset()
метод)
Теперь, когда мы получили все необходимые позиции, мы можем провести линию следующим образом ...
line1
.attr('x1', pos1.left)
.attr('y1', pos1.top)
.attr('x2', pos2.left)
.attr('y2', pos2.top);
.attr()
Метод jQuery используется для изменения атрибутов выбранного элемента.
Все, что мы сделали в строке выше, это изменили атрибуты строки с
x1 = 0
y1 = 0
x2 = 0
y2 = 0
к
x1 = pos1.left
y1 = pos1.top
x2 = pos2.left
y2 = pos2.top
as position()
возвращает два значения, одно 'left' и другое 'top', мы можем легко получить к ним доступ, используя .top и .left, используя объекты (здесь pos1 и pos2) ...
Теперь у линейного тега есть две разные координаты, чтобы провести линию между двумя точками.
Совет: добавьте прослушиватели событий по мере необходимости в div
Совет: убедитесь, что вы импортируете библиотеку jQuery, прежде чем писать что-либо в теге script
После добавления координат через JQuery ... это будет выглядеть примерно так
Следующий фрагмент предназначен только для демонстрационных целей, пожалуйста, следуйте инструкциям выше, чтобы получить правильное решение.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1" style="width: 100px; height: 100px; top:0; left:0; background:#e53935 ; position:absolute;"></div>
<div id="div2" style="width: 100px; height: 100px; top:0; left:300px; background:#4527a0 ; position:absolute;"></div>
<svg width="500" height="500"><line x1="50" y1="50" x2="350" y2="50" stroke="red"/></svg>