¿Cómo hago un elemento, p. un div, arrastrable usando jQuery?¿Cómo puedo hacer que un elemento se pueda arrastrar en jQuery?
Respuesta
Primera carga de la interfaz de usuario jQuery:
<link type="text/css" href="css/themename/jquery-ui-1.7.1.custom.css" rel="Stylesheet" />
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.7.1.custom.min.js"></script>
A continuación, utilice jQuery UI draggable method:
<script type="text/javascript">
$(function() {
$("#b").draggable();
});
</script>
Usted puede hacer sólo con jQuery, sin interfaz de usuario jQuery:
function handle_mousedown(e){
window.my_dragging = {};
my_dragging.pageX0 = e.pageX;
my_dragging.pageY0 = e.pageY;
my_dragging.elem = this;
my_dragging.offset0 = $(this).offset();
function handle_dragging(e){
var left = my_dragging.offset0.left + (e.pageX - my_dragging.pageX0);
var top = my_dragging.offset0.top + (e.pageY - my_dragging.pageY0);
$(my_dragging.elem)
.offset({top: top, left: left});
}
function handle_mouseup(e){
$('body')
.off('mousemove', handle_dragging)
.off('mouseup', handle_mouseup);
}
$('body')
.on('mouseup', handle_mouseup)
.on('mousemove', handle_dragging);
}
$('#b').mousedown(handle_mousedown);
Esta debería ser la respuesta aceptada ya que no requiere un complemento adicional. – BFWebAdmin
@BFWebAdmin no necesariamente porque la pregunta claramente/específicamente pide jquery. – MJB
@MJB - Por un complemento adicional, quise decir jQuery UI, que debe instalarse por separado. – BFWebAdmin
acabo cociné esto así que es muy portátil en lugar de "arrastrar" en toda la interfaz de usuario de jQuery.
No selecciona el texto cuando se arrastra debajo de él, así que esto realmente funciona en producción a diferencia del otro código aquí.
Esto también funciona con elementos posicionados fijos bastante bien para que pueda "dock"
$.fn.draggable = function(){
var $this = this,
ns = 'draggable_'+(Math.random()+'').replace('.',''),
mm = 'mousemove.'+ns,
mu = 'mouseup.'+ns,
$w = $(window),
isFixed = ($this.css('position') === 'fixed'),
adjX = 0, adjY = 0;
$this.mousedown(function(ev){
var pos = $this.offset();
if (isFixed) {
adjX = $w.scrollLeft(); adjY = $w.scrollTop();
}
var ox = (ev.pageX - pos.left), oy = (ev.pageY - pos.top);
$this.data(ns,{ x : ox, y: oy });
$w.on(mm, function(ev){
ev.preventDefault();
ev.stopPropagation();
if (isFixed) {
adjX = $w.scrollLeft(); adjY = $w.scrollTop();
}
var offset = $this.data(ns);
$this.css({left: ev.pageX - adjX - offset.x, top: ev.pageY - adjY - offset.y});
});
$w.on(mu, function(){
$w.off(mm + ' ' + mu).removeData(ns);
});
});
return this;
};
Pero esto supone absoluto o posicionamiento fijo se aplica al elemento ya.
Se usa así:
$('#something').draggable();
No recomiendo usar este FYI. Mire MDN en modo arrastrable y use el navegador nativo. –
funciona bien para mí! – foreyez
- 1. ¿Cómo hacer que jQuery se pueda arrastrar con los ejes X e Y fijos?
- 2. ¿Cómo puedo hacer que una interfaz de usuario jQuery 'arrasgable()' div se pueda arrastrar para pantalla táctil?
- 3. ¿Cómo puedo habilitar 'arrastrar' en un elemento con contentEditable?
- 4. Cómo hacer que un div sea satisfactorio y se pueda arrastrar
- 5. ¿Cómo puedo hacer que un área no se pueda hacer clic en CSS?
- 6. hacer que un objeto se pueda hacer clic desde detrás de otro elemento en html
- 7. ¿Cómo hacer un ListView con elementos que se pueden arrastrar?
- 8. ¿Cómo hacer que UITableView se pueda reorganizar?
- 9. ¿Cómo hago que un enlace no se pueda hacer clic?
- 10. JQuery UI Arrastrable: ¿cómo se puede inicializar un elemento que se puede arrastrar?
- 11. cómo hacer que los niños arreglen un elemento en jquery
- 12. cómo hacer que el botón UI se pueda arrastrar dentro de UIView?
- 13. Cómo hacer que un LinearLayout pueda desplazarse
- 14. jQuery reversión pueda arrastrar y dejar de evento
- 15. ¿Cómo hacer que un elemento en las listas de ul no pueda ser ordenado ni extraíble?
- 16. ¿Cómo hacer que el elemento HTML se pueda redimensionar usando javascript puro?
- 17. Jquery que se puede arrastrar y clon
- 18. Cómo hacer que un elemento en una vista de lista no se pueda hacer clic en Android
- 19. ¿Cómo puedo hacer que un ComboBox no se pueda editar en .NET?
- 20. ¿Cómo puedo hacer que mi código jquery sea más fácil de arrastrar/soltar?
- 21. jQueryUI: eliminar correctamente un elemento que se puede arrastrar
- 22. ¿Cómo puedo convertir un elemento DOM en un elemento jQuery?
- 23. jQuery que se puede arrastrar: el cuadro que se puede arrastrar pasa por el contenedor - ¿error?
- 24. ¿Cómo hacer que el div subyacente no se pueda cliquear?
- 25. ¿Cómo hacer que el botón no se pueda hacer clic después de hacer clic en él?
- 26. jQuery arrastrar y soltar: cómo llegar al elemento que se está arrastrando
- 27. ¿Cómo puedo arrastrar un elemento a una lista desplegable usando jQuery UI sortable()?
- 28. Cómo hacer que UIScrollView siempre se pueda desplazar
- 29. ¿Cómo puedo configurar mi .git/config para que pueda avanzar/arrastrar desde múltiples repositorios remotos?
- 30. Jquery se pueden arrastrar y tamaño variable
jQueryUI no ha tenido su backend actualizado correctamente en años, y ahora tiene a menudo problemas de funcionamiento limpiamente al lado de otra Desarrollos aplicación. El motivo es que la versión más reciente de jqueryUI requiere jquery v1.7.x donde jquery está en v3.2.1 a la hora de este comentario. – Nosajimiki