Как сделать drag and drop javascript

Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
20 мая 2024

Для добавления функциональности перетаскивания элементов на веб-странице с помощью JavaScript, вы можете использовать события dragstart, dragover, drop и dragend. Вот пример кода, который позволит вам создать простую реализацию drag and drop:

  1. HTML разметка:

    <div id="dragElement" draggable="true">Перетащите меня</div>
    <div id="dropZone">Сюда перетащите элемент</div>
    
  2. CSS стили (необязательно для работы drag and drop, но помогает с улучшением пользовательского интерфейса):

    #dragElement {
    width: 100px;
    height: 50px;
    background-color: #f2f2f2;
    text-align: center;
    line-height: 50px;
    cursor: move;
    }
    #dropZone {
    width: 200px;
    height: 100px;
    border: 2px dashed #ccc;
    text-align: center;
    line-height: 100px;
    }
    
  3. JavaScript код:

    const dragElement = document.getElementById('dragElement');
    const dropZone = document.getElementById('dropZone');
    
    dragElement.addEventListener('dragstart', function(event) {
      event.dataTransfer.setData('text/plain', 'Dragged element');
    });
    
    dropZone.addEventListener('dragover', function(event) {
      event.preventDefault();
    });
    
    dropZone.addEventListener('drop', function(event) {
      event.preventDefault();
      const data = event.dataTransfer.getData('text/plain');
      event.target.textContent = data;
    });
    
    dragElement.addEventListener('dragend', function(event) {
      event.target.textContent = 'Перетащите меня';
    });
    

С помощью этого кода вы сможете перетащить элемент с id="dragElement" в область с id="dropZone". Попробуйте перетащить элемент и он появится в зоне dropZone.

Обратите внимание, что этот код предоставляет только базовую реализацию функциональности drag and drop. В зависимости от ваших потребностей, вы можете доработать код, добавив дополнительную логику или улучшения.

1 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Тест-драйв

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

Верстка

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.

Базы данных

Фреймворки