Я искал код JavaScript, чтобы сделать div draggable, и единственное, что я нашел, это то, что вам нужно было загрузить jQuery, есть ли способ сделать div перетаскиваемым без jQuery с помощью JavaScript.Draggable without jQuery
ответ
Да, есть. Но вам придется иметь дело с различиями в браузерах.
http://www.w3.org/html/wg/drafts/html/master/editing.html#dnd
Я настоятельно рекомендую вам использовать JQuery. Нет причин, почему нет.
С JQuery было организовано Google, нет необходимости загрузки это только ссылаться на него как таковой:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
Более подробную информацию о Google принимала JQuery здесь: http://encosia.com/3-reasons-why-you-should-let-google-host-jquery-for-you/
Однако, если вы так отчаянно использовать чистые JS, я высоко рекомендую этот учебник: http://tech.pro/tutorial/650/javascript-draggable-elements
Абсолютно. Перетаскивание на самом деле довольно просто. Там есть ряд шагов к нему, но вот выбега:
Во-первых, чтобы сделать элемент перетаскивать, просто добавьте атрибут
draggable
так:
<div draggable="true">
. Обратите внимание, что изображения и ссылки перетаскиваются по умолчанию - в некоторых случаях вам может понадобиться установить атрибутыdraggable="false"
.Теперь вам нужно что-то сделать, когда их таскают. Установите для элемента прослушиватель событий
dragstart
. В этом случае вы, вероятно, хотите включить такой код:
evt.dataTransfer.clearData(); // clear any default data
evt.dataTransfer.setData("Text","This is some text");
somevar = this; // store the element being dragged
Далее вам нужно обрабатывать то, что происходит, когда вы перетащите элемент на действительной цели. Это единственная часть, которая немного сложна, поскольку для этого есть два события:
dragenter
иdragover
. Первый срабатывает, когда вы на самом деле вводите цель, тогда как второй пожар, такой какmousemove
, делает. Вы обычно хотите одно и то же событие для обоих. В этом случае, чтобы сделать цель на правильную точку падения, вы должны вызватьevt.preventDefault()
иreturn false
(потому что действие по умолчанию, чтобы не допустить падения)Наконец, прикрепить
drop
событие к целевому элементу. Это событие будет запущено при удалении элемента, который вы перетаскиваете в соответствующей области.
При желании вы также можете добавить событие dragend
к исходному элементу. Это будет запущено, если элемент больше не перетаскивается, независимо от того, успешно ли он был удален или нет. Существует также dragleave
, если вы удаляетесь от цели падения.
Если вам нужна дополнительная помощь, сообщите мне, но я надеюсь, что это объяснило, как это сделать.И теперь, чрезвычайно простой пример:
<div id="source" draggable="true" style="background:#f88">Drag me</div>
<div id="target" style="background:#88f;padding:5px">Drop here</div>
<script type="text/javascript">
var source = document.getElementById('source'),
target = document.getElementById('target'),
dragging = null, // the element being dragged
addEvent = function(source,types,handler) {
// this is just a standard cross-browser event registration function
// it can handle more than one type at once
var typearr = types.split(" "), l = typearr.length, i;
for(i=0; i<l; i++) {
if(source.addEventListener)
source.addEventListener(typearr[i],handler,true);
else
source.attachEvent("on"+typearr[i],handler,true);
}
};
addEvent(source,"dragstart",function(evt) {
evt = evt || window.event;
evt.dataTransfer.clearData();
dragging = this;
setTimeout(function() {dragging.style.opacity=0.5;},1);
//^tiny pause so browser can get the right drag image
});
addEvent(target,"dragenter dragover",function(evt) {
if(dragging) {
this.style.backgroundColor = "#8f8";
evt = evt || window.event;
if(evt.preventDefault) evt.preventDefault();
return false;
}
});
addEvent(target,"dragleave",function() {this.style.backgroundColor = "#88f";});
addEvent(target,"drop",function() {
if(dragging) {
this.appendChild(dragging);
this.style.backgroundColor = "#88f";
dragging = null;
if(evt.preventDefault) evt.preventDefault();
return false;
}
});
addEvent(source,"dragend",function() {this.style.opacity=1;});
</script>
И here является Скрипки.
- 1. jquery - draggable
- 2. jquery draggable
- 3. JQuery Draggable
- 4. Jquery Draggable
- 5. jquery draggable
- 6. Draggable JQuery
- 7. Отключить JQuery Draggable после KeyUp
- 8. Fade without jQuery
- 9. jQuery carousel without cloning
- 10. JQuery Draggable и Droppable с несколькими Draggable
- 11. jquery draggable/droppable change snap
- 12. jQuery Tools overlay draggable
- 13. jQuery draggable cancel option
- 14. jQuery UI Draggable
- 15. JQuery draggable не работает
- 16. jQuery Определение класса Draggable
- 17. JQuery Draggable Placeholder
- 18. jQuery UI draggable ограничение
- 19. jQuery Draggable: Изображение Flicker
- 20. JQuery: Draggable sensibility
- 21. Jquery Draggable/Живая
- 22. JQuery draggable droppable
- 23. Закрытие и jQuery draggable()
- 24. Уничтожить JQuery draggable
- 25. jQuery draggable after drop
- 26. jQuery UI Droppable/Draggable
- 27. jQuery Draggable Problem
- 28. Проблема с jQuery Draggable
- 29. JQuery UI Draggable Modal
- 30. JQuery Draggable Element Intersect
Да, возьмите исходный код, скопируйте его, атрибут John Resig, теперь вы не загрузили jQuery. – gdoron
https://www.google.com/search?q=drag+drop+javascript – mplungjan
http://www.html5rocks.com/en/tutorials/dnd/basics/ и вам не нужен jQuery – ultranaut