#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
Ответ №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.
Ответ №4:
Смотрите перетаскиваемый пример из пользовательского интерфейса jQuery здесь