Объединение строк с svgs стоило мне попробовать, и это сработало отлично ... Прежде всего, Scalable Vector Graphics (SVG) - это векторный формат изображения на основе XML для двумерной графики с поддержкой интерактивности и анимации.,Изображения SVG и их поведение определены в текстовых файлах XML.Вы можете создать SVG в HTML с помощью тега <svg>
.Adobe Illustrator является одним из лучших программ, используемых для создания сложных svgs с использованием путей.
Процедура объединения двух элементов 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>
Тег строки позволяет нам провести линию между двумя указанными точками (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();
jQuery position()
Метод позволяет нам получить текущую позицию элемента.Для получения дополнительной информации посетите https://api.jquery.com/position/ (вы также можете использовать метод offset()
)
Теперь, когда мы получили все необходимые позиции, мы можем нарисовать линию следующим образом...
line1
.attr('x1', pos1.left)
.attr('y1', pos1.top)
.attr('x2', pos2.left)
.attr('y2', pos2.top);
jQuery .attr()
метод используется для изменения атрибутов выбранного элемента.
Все, что мы сделали в приведенной выше строке, мы изменили атрибуты строки с
x1 = 0
y1 = 0
x2 = 0
y2 = 0
на
x1 = pos1.left
y1 = pos1.top
x2 = pos2.left
y2 = pos2.top
, так как position()
возвращает два значения, одно «влево»и другие «top», мы можем легко получить к ним доступ, используя .top и .left, используя объекты (здесь pos1 и pos2) ...
Теперь у тега line есть две разные координаты для рисования линии между двумя точками.
Подсказка: добавьте прослушиватели событий по мере необходимости в divs
Подсказка: сначала убедитесь, что вы импортируете библиотеку jQuery, прежде чем что-либо писать в теге скрипта
После добавление координат через 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>