В этой статье будет рассказываться как сделать drag’n’drop на чистом JavaScript, или если на русском, то перемещение элементов.
HTML и CSS:
Сперва, нам нужно создать в объект для перемещение и задать ему нужные стили.
1 | <div id="block"></div> |
Тут просто добавляем в HTML, <div>
элемент с ID block
.
1 2 3 4 5 6 | #block { width: 100px; height: 100px; background-color: red; position: absolute; } |
Здесь мы задаём блоку сначала ширину и высоту, потом цвет, и самое главное задаём позиционирование absolute
, вот результат.
Благодаря такому позиционированию, мы сможем спокойно перемешать объект куда нам надо.
Также, если вам тут что то не понятно, то посмотрите наши учебники по вёрстки.
JavaScript:
Теперь перейдём к самому важному, это к коду на JS.
1 2 3 4 5 6 7 8 9 10 | // Получаем блок по ID let block = document.getElementById("block"); // Функция для перемещения блока function moveBlock(e) { // Перемешаем блок по X block.style.left = e.pageX + 'px'; // Перемешаем блок по Y block.style.top = e.pageY + 'px'; } |
В начале всё просто, тут получаем элемент блока по его ID, потом создаём функцию для перемещения блока, в ней мы просто меняем позиционирование на то, где находится курсор мыши.
Теперь самое главное, это то, как реализовать само перемещение объекта.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // Отслеживаем событие нажатия мыши block.addEventListener("mousedown", function (e) { // Отслеживаем событие перемещение мыши document.onmousemove = function(e) { // Объявляем функцию для перемещения блока moveBlock(e); } // Отслеживаем отпускание кнопки мыши block.onmouseup = function() { // Убираем отслеживание позиции мыши document.onmousemove = null; // Убираем отслеживание нажатия мыши block.onmouseup = null; } }); |
Как вы видите, тут очень маленький код, и всё очень просто, в начале начинаем отслеживать событие нажатия мыши на блок, который хотим передвинуть.
Внутри этого события, мы отслеживаем ещё два события, первое, перемещение мыши, когда мы перемещаем мышь, вместе с ней перемещается блок, это происходит за счёт изменения позиционирование, слева и сверху.
Второе событие, это отпускание кнопки мыши, внутри него отменяется отслеживание позиции мыши и нажатие мыши.
Теперь перемещение объекта на javascript готово.
Вывод:
В этой статье было показано как сделать drag’n’drop на чистом JavaScript, этот вариант кода очень простой, но думаю у вас получится его усовершенствовать.