Как сделать div перетаскиваемым на другой div?

#javascript #jquery #html #css

#javascript #jquery #HTML #css

Вопрос:

Мне нужно сделать div перетаскиваемым на другой div. Как это сделать?

Это мой html, и я сделал это адаптивным с помощью медиа-запроса

 <style>
    .text-canvas{
        z-index:1;
        position:absolute;
    }
    .imageupload{
        z-index:-1;
    }
</style>

<script>
    function submit_button(){
    alert('hiii');
   }

</script>
<div class="parent-canvas">
      <div class="text-canvas" contenteditable="true">
        my text
     </div>
     <div class="image-canvas">
         <div class="imageupload" onclick="submit_button()">
            <img src="img.png">
        </div>

    </div>
</div>
  

Здесь мне нужно сделать этот текстовый холст перетаскиваемым в div, чтобы пользователь мог перетащить этот мой текст и разместить его в любом месте изображения (только внутри image-canvas div).
Я вижу перетаскивание html, но я не понял, как это применить.

Ответ №1:

На основе вашего html: Добавьте этот скрипт

 $( ".text-canvas"").draggable({
    containment: ".imageupload"
}); 
  

Для любых сомнений в синтаксисе или работе проверьте эти документы

(1) http://api.jqueryui.com/draggable /

(2) https://jqueryui.com/draggable /

Убедитесь, что вы уже включили jquery-ui.js . Сначала вам нужно вызвать jquery.js или jquery.min.js тогда вызывайте только jquery-ui.js порядок важен. например:

 <script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  

Ответ №2:

Проверьте перетаскивание HTML5

Перетаскивание HTML5

Ответ №3:

Создайте цели для перетаскиваемых элементов.Включите возможность удаления любого элемента DOM, который является целью для перетаскиваемых элементов.

 <!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Droppable - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <style>
  #draggable { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
  #droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }
  </style>
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
    $( "#draggable" ).draggable();
    $( "#droppable" ).droppable({
      drop: function( event, ui ) {
        $( this )
          .addClass( "ui-state-highlight" )
          .find( "p" )
            .html( "Dropped!" );
      }
    });
  } );
  </script>
</head>
<body>

<div id="draggable" class="ui-widget-content">
  <p>Drag me to my target</p>
</div>

<div id="droppable" class="ui-widget-header">
  <p>Drop here</p>
</div>


</body>
</html>
  

Плагин jQuery UI Droppable делает выбранные элементы доступными для перетаскивания (что означает, что они допускают перетаскивание с помощью перетаскиваемых элементов). Вы можете указать, какие перетаскиваемые файлы будут приниматься каждым.

Тематизация

Виджет с возможностью перетаскивания использует CSS-фреймворк jQuery UI для стилизации своего внешнего вида. Если требуется определенный стиль для удаления, следующие имена классов CSS могут использоваться для переопределений или в качестве ключей для опции classes:

ui-droppable: элемент, который можно перетаскивать. Когда активируется перетаскиваемый элемент, который может быть удален в этом droppable, добавляется класс ui-droppable-active. При перетаскивании перетаскиваемого объекта поверх этого перетаскиваемого объекта добавляется класс ui-droppable-hover.

ссылка https://jqueryui.com/droppable /

Ответ №4:

Смотрите перетаскиваемый пример из пользовательского интерфейса jQuery здесь