Як створити простий Drag and Drop компонент

3 хв. читання

Функція перетягування з HTML 5 може оптимізувати Ваш сайт за допомогою більш динамічних інтерактивних елементів, які, без сумніву, сподобаються Вашим користувачам . HTML 5 став важливим аспектом у веб-розробці, особливо у створенні високотворчих та інтерактивних компонентів, які роблять Ваш сайт більш функціональним. Зараз, функція перетягування стає популярною серед веб- розробників.

Рух слів для утворення речень

Першим кроком буде створення веб-сторінки:

    <style type=""text/css"">
    </style>
    <script type=""text/javascript"">
    </script>

Далі ми додамо рухливі елементи. Почніть з body, створивши 6 батьківських div елементів кожен з яких має свій дочірній div.
Батьківський div надає drop позицію для Вашого компоненту, дочірній - властивість перетягування для батьківських елементів.
Перший набір повинен бути вставлений в початок body:

    <div>
    <div>Page</div>
    </div>

Потрібно продовжити дочірній елемент додавши до нього:

    <div>Page</div>

Додайте інші 5 div елементів:

    <div>
    <div>This</div>
    </div>
    <div>
    <div>Web</div>
    </div>
    <div>
    <div>Is</div>
    </div>
    <div>
    <div>Nice</div>
    </div>
    <div>
    <div>A</div>
    </div>

Для того, щоб зробити ваші елементи більш інтуїтивно інтерактивними, ви повинні додати елемент стилю- drag. Додайте цей код до head, в розділ стилів:

    .mover {
    width:60px;
    height:4em;
    line-height:4em;
    margin:10px;
    padding:5px;
    float:left;
    background:#ffff99;
    border:1px dotted #333333;
    text-align:center;
    }

Наступним кроком є додання операції перетягування. Зверніть увагу, що Ви вже додали атрибут draggable до Вашого дочірнього div елементу. Додайте цей код в якості обробника подій, який буде виконуватись, коли функція перетягування активується:

    ondragstart="dragWord(event)"
    Then add this to the script section:
    function dragWord(dragEvent){
    //start drag
    }

Потім додайте це код в середину drag функції:

    dragEvent.dataTransfer.setData("text/html", dragEvent.target.textContent+"|"+dragEvent.target.parentNode.id);

Тепер додамо drop функцію, яка має бути приєднана до кожного з батьківських елементів:

    ondragover="event.preventDefault()"

Додайте цей код, щоб створити потрібну нам функцію. Вам потрібно додати цей код в кожний з шести батьківських елементів:

    ondrop="dropWord(event)"

Додайте цей код до скрипт-розділу Вашої сторінки:

    function dropWord(dropEvent){
    //drop
    }

Отримання даних перетягування:

    var dropData = dropEvent.dataTransfer.getData("text/html");

Щоб отримати дві розділені позиції даних, використовуйте знак "|":

    var dropItems = dropData.split("|");

Використовуйте ідентифікатор поточного батьківського div-елемента, який ви перетягуєте, щоб використовувати другий пункт з допомогою цього посилання:

    var prevElem = document.getElementById(dropItems[1]);

Дочірній div повинен мати вміст всередині батьківського div, який буде відображати слова на перетягуваних елементах за допомогою цього коду:

    prevElem.getElementsByTagName("div")[0].textContent = dropEvent.target.textContent;

Тоді ви оновляєте dropped елемент, щоб показати слово, яке перетягнули і яке має бути розташоване в першому масиві даних, який використовується в якості індексу 0, використовуючи цей код:

    dropEvent.target.textContent = dropItems[0];

Додайте це код, щоб запобігти відображенню поведінки за замовчуванням:

    dropEvent.preventDefault();

Кінцевий результат буде виглядати так:

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.6K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація