En las interfaces gráficas de usuario de ordenador , arrastrar y soltar es un gesto del dispositivo señalador en el que el usuario selecciona un objeto virtual "agarrándolo" y arrastrándolo a una ubicación diferente o sobre otro objeto virtual. En general, se puede utilizar para invocar muchos tipos de acciones o crear varios tipos de asociaciones entre dos objetos abstractos .
Como característica, la función de arrastrar y soltar no se encuentra en todos los programas , aunque a veces es una técnica rápida y fácil de aprender. Sin embargo, no siempre queda claro para los usuarios que se puede arrastrar y soltar un elemento, o qué comando se ejecuta al arrastrar y soltar, lo que puede reducir la usabilidad. [1]
La secuencia básica involucrada en arrastrar y soltar es:
Arrastrar requiere más esfuerzo físico que mover el mismo dispositivo señalador sin mantener presionado ningún botón. Debido a esto, un usuario no puede moverse tan rápido y con tanta precisión mientras arrastra (consulte la ley de Fitts ). Sin embargo, las operaciones de arrastrar y soltar tienen la ventaja de agrupar cuidadosamente dos operandos (el objeto a arrastrar y la ubicación de colocación) en una sola acción. [2] Arrastrar y soltar durante mucho tiempo (como en el diseño gráfico) puede estresar la mano que usa el mouse.
Aparece un problema de diseño cuando el mismo botón selecciona y arrastra elementos. Un movimiento impreciso puede provocar que el intento de seleccionar un objeto se registre como un movimiento de arrastre.
Otro problema es que el objetivo de la acción de arrastrar puede quedar oculto bajo otros objetos. El usuario tendría que detener el arrastre, hacer visibles tanto el origen como el objetivo y comenzar de nuevo. En el Mac OS clásico, la barra de menú de la parte superior de la pantalla servía como objetivo universal para "cancelar el arrastre". Este problema se ha solucionado en Mac OS X con la introducción de Exposé .
El método de arrastrar y soltar, llamado en aquel momento "hacer clic y arrastrar" , se utilizaba en el Macintosh original para manipular archivos (por ejemplo, copiarlos entre discos [3] o carpetas [4] ). El Sistema 7 agregó la capacidad de abrir un documento en una aplicación colocando el icono del documento sobre el icono de la aplicación.
Apple agregó "Macintosh Drag and Drop" al Sistema 7.5 , extendiendo "clic y arrastrar" a operaciones comunes del portapapeles como copiar o mover contenido textual dentro de un documento. El contenido también se podía arrastrar al sistema de archivos para crear un "archivo de recorte" que luego se podía almacenar y reutilizar. Los archivos también se podían soltar en las ventanas de las aplicaciones, por ejemplo, para incluir un documento en un correo electrónico o agregar una imagen a un documento de procesador de textos.
Durante la mayor parte de su historia, Mac OS ha utilizado un ratón de un solo botón que cubría gran parte de la superficie superior del ratón. Esto puede mitigar los problemas ergonómicos que supone mantener pulsado el botón mientras se arrastra.
El Workplace Shell de OS/2 utiliza ampliamente la función de arrastrar y soltar con el botón secundario del mouse , dejando el botón principal para seleccionar y hacer clic. Su uso, al igual que el de otras funciones avanzadas de Common User Access, distingue a las aplicaciones nativas de OS/2 de los puertos independientes de la plataforma .
La especificación del borrador de trabajo HTML5 incluye soporte para arrastrar y soltar. [5] HTML5 admite diferentes tipos de funciones de arrastrar y soltar, entre ellas:
Según la acción necesaria, se puede utilizar uno de los tipos anteriores. Tenga en cuenta que cuando se arrastra un elemento HTML para moverlo a su posición actual, su ID se envía al elemento principal de destino; por lo tanto, envía un texto y se puede considerar como el primer grupo.
Gmail, la aplicación de correo electrónico basada en la web de Google, permite arrastrar y soltar imágenes y archivos adjuntos en el último navegador Google Chrome y Safari (5.x) de Apple . Google Images permite a los usuarios arrastrar y soltar archivos de imágenes en un navegador para realizar una búsqueda inversa de imágenes .
Las interfaces de pantalla táctil también incluyen arrastrar y soltar, o más precisamente, presionar prolongadamente y luego arrastrar, por ejemplo en las pantallas de inicio de iPhone o Android .
iOS 11 implementa una función de arrastrar y soltar que permite al usuario tocar elementos (y tocar con otros dedos para arrastrar más) dentro de una aplicación o entre aplicaciones en iPads . [6] En iPhones, la funcionalidad solo está disponible dentro de la misma aplicación en la que el usuario inició el arrastre. [7]
El método de arrastrar y soltar se considera un enfoque importante para la construcción de programas en muchos sistemas de desarrollo para el usuario final . A diferencia de los lenguajes de programación más tradicionales basados en texto, muchos lenguajes de programación para el usuario final se basan en componentes visuales, como mosaicos o íconos, que los usuarios finales manipulan mediante interfaces de arrastrar y soltar. AgentSheets , [8] un entorno de programación para niños, introdujo la noción moderna de programación de bloques de arrastrar y soltar, proporcionando 4 ventajas fundamentales: 1) bloques que son componibles por el usuario final, 2) los bloques son editables por el usuario final, 3) los bloques se pueden anidar para representar estructuras de árbol, 4) los bloques se organizan geométricamente para definir la sintaxis. El método de arrastrar y soltar también se incluye en muchos programas de edición de sombreadores para herramientas gráficas, como Blender . [9] El método de arrastrar y soltar también se incluye en algunos motores de videojuegos, incluidos Unreal Engine , GameMaker Studio , Construct 2 y, con la expansión, Unity .
Un ejemplo común es arrastrar un ícono en un escritorio virtual a un ícono de papelera especial para eliminar un archivo .
Otros ejemplos incluyen: