2009-11-05 46 views
9

Me resulta difícil arrastrar y soltar (ya sabes, manteniendo presionado el botón del mouse mientras me muevo), y quiero ofrecer un 'seleccionar y soltar' donde un usuario hace clic en un icono y vuelve a hacer clic en el dibujo para dejar caer el elemento correspondiente (una imagen).¿Cómo se hace una imagen para seguir el puntero del mouse con jquery?

¿Cómo se hace eso con jquery?

Gracias.

Editar: Tengo dos divs, una placa de iconos para seleccionar elementos y una placa de dibujo donde se sueltan las imágenes. Cuando el mouse entre en la placa de dibujo, quiero una opacidad del 50% de la imagen más grande, siga el puntero del mouse para que el usuario lo sepa haciendo clic donde va a caer y si se superpone con algo que ya está en el tablero de dibujo.

Respuesta

28

La respuesta (con la ayuda de James Negro) es:

HTML

<div id="sketch"></div> 
    <img src="cat.jpg" class="follow" style="position: absolute;"/> 

jQuery

$("#sketch").mousemove(function(e){ 
     $('.follow').css({'top': e.clientY - 20, 'left': e.clientX - 20}); 
}); 

demostración Jsbin here.

+0

Gracias por esto: ¡me ayudó mucho ahora! – uotonyh

+1

Buena respuesta @Majid. Sin embargo, tenga en cuenta que también puede pasar un objeto a la función .css() en lugar de llamarlo varias veces. Ejemplo: $ ('. Follow'). Css ({'top': e.clentY, 'left': e.clientX}); – AndyPerlitch

+0

@AndyPerlitch, gracias! Actualizo la respuesta para usar un objeto y hacer una sola llamada a '.css()'. –

3

Simplemente almacene el elemento en alguna variable que sea accesible para el evento de clic.

Por lo tanto, haga clic en cada imagen: $('img').bind('click', function(e) { ... }); Luego, cuando hagan clic, simplemente almacene el evento target en algún lugar y vincule un evento de clic al plano de dibujo.

Una forma interesante sería usar un cierre y unir ese evento objetivo particular para que, en caso de un clic en el plano de dibujo, sabrá cuál mover, pero mientras sepa, entonces solo usa una animación para mover el img a la nueva ubicación.

Lo olvidé, también deberá asegurarse de que cuando se hace clic en una imagen, se elimina el controlador de eventos que ya está en la placa de dibujo antes de enlazar uno nuevo.

+0

Supongo que es la forma de hacerlo en javascript sin un marco. Esperaba que hubiera una manera más fácil de utilizar los poderes de jquery. Además, haces clic en el ícono pero dejas caer la imagen y no son lo mismo. –

+0

jQuery hace esto más fácil de hacer, ya que abstrae mucho del trabajo de hacerlo multiplataforma. Sería fácil de implementar, si toma menos de 30 minutos lo hago yo mismo. Si hace clic en la placa de dibujo, después de hacer clic en una imagen, puede clonar o mover la imagen al lugar correcto, como si estuviera hecha con DnD. –

+0

La idea de tener una imagen es seguir el puntero del mouse mientras está dentro del plano de dibujo. la clonación de la imagen que se colocará en el plato no es un problema. –

Cuestiones relacionadas