Foros del Web » Creando para Internet » CSS »

"Navegar" sobre una imagen

Estas en el tema de "Navegar" sobre una imagen en el foro de CSS en Foros del Web. Buenos días amigos. Aún no tengo código pero tengo una idea que no se cómo hacer. A ver si me explico: Tengo un <div> de ...
  #1 (permalink)  
Antiguo 17/06/2013, 04:43
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
"Navegar" sobre una imagen

Buenos días amigos. Aún no tengo código pero tengo una idea que no se cómo hacer. A ver si me explico:

Tengo un <div> de 500px de width, en el que se va a cargar una imagen de 2000px de width.
Mi idea es que cuando el cursor hace 'hover' sobre la mitad derecha del <div>, la imagen se desplace horizontalmente para poder ver más imagen hacia ese lado y cuando el cursor se coloca en la mitad izquierda del <div>, lógicamente, se desplace la imagen hacia la izquierda.
Espero haberme explicado y que me hayan entendido.
No se si esto es CSS, JQuery, JavaScript o lo que sea, pido disculpas si no está bien colocada en el foro mi pregunta y ruego que la cambien a donde corresponda.

Gracias de antemano a todos.
  #2 (permalink)  
Antiguo 17/06/2013, 05:35
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: "Navegar" sobre una imagen

Con CSS puedes hacerlo.

Sólo tendrías que crear un contenedor, donde primero pones dos elementos para hacer el hover posicionados de forma absoluta, y a continuación la imagen. Una estructura así:

Código HTML:
Ver original
  1. <div class="contenedor">
  2.   <span class="izq"></span>
  3.   <span class="der"></span>
  4.   <img src="foto.png">
  5. </div>

Como digo, .izq y .der deberían de tener una posición absoluta. Eso serían los controladores. El padre una relativa, y la imagen para moverla una relativa también.

Después usar :hover y el selector ~ para seleccionar la imagen cuando se pasa por encima de uno de esos controles y la mueves donde haga falta. Después puedes usar transition para que quede más bonito.

Código CSS:
Ver original
  1. div.contenedor {
  2.   position: relative;
  3.   width: 500px;
  4.   overflow: hidden;
  5. }
  6. img {
  7.   position: relative;
  8.   left: -750px;
  9.   transition: left 1.2s ease-in-out;
  10. }
  11. span {
  12.   position: absolute;
  13.   top: 0;
  14.   right: 0;
  15.   bottom: 0;
  16.   left: 0;
  17.   z-index: 1;
  18.   display: block;
  19. }
  20. span.izq {
  21.   right: 60%;
  22. }
  23. span.der {
  24.   left: 60%;
  25. }
  26. span.izq:hover ~ img {
  27.   left: 0;
  28. }
  29. span.der:hover ~ img {
  30.   left: -1500px;
  31. }

Puse un ejemplo usando Sass: http://codepen.io/pzin/pen/xoHsn

Para que quede un poco mejor, los controladores ahí ocupan un 40% del ancho visible de la foto, así al tener el puntero sore el 20% de la mitad de la foto, se ve centrada. Si quieres que ocupen la mitad, simplemente indica 50% donde pone 60%. Pone 60% porque es la distancia de cada controlador al borde contrario.

Última edición por pzin; 17/06/2013 a las 05:56 Razón: código
  #3 (permalink)  
Antiguo 17/06/2013, 05:50
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: "Navegar" sobre una imagen

Esto es exáctamente a lo que me refería y lo que necesitaba. Muchas gracias pzin

Etiquetas: hover
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:56.