Foros del Web » Creando para Internet » Diseño web »

[SOLUCIONADO] Centrar imagen más ancha que la resolución

Estas en el tema de Centrar imagen más ancha que la resolución en el foro de Diseño web en Foros del Web. Hola a todos. Se trata de un slider que quiero que ocupe el 100% de la resolución de la pantalla. Aparentemente fácil, y con muchas ...
  #1 (permalink)  
Antiguo 20/11/2014, 15:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Centrar imagen más ancha que la resolución

Hola a todos.

Se trata de un slider que quiero que ocupe el 100% de la resolución de la pantalla.

Aparentemente fácil, y con muchas soluciones en el mercado, pero no tanto, porque el alto debe ser siempre el mismo: 500 píxeles. El problema es que debe mostrarse y verse el centro de la imagen.

La imagen es de 2560 píxeles de ancho.

Si la vemos en un monitor de esa resolución, se ve bien.

Si le adjundicamos un 100% de ancho, se ve bien en tal resolución, pero a medida que el tamaño de la pantalla se estrecha, se produce un fenómeno de decrecimiento proporcional del alto de la imagen, puesto que al disminuir el ancho, el alto también decrece y ya no es 500 px.

Si no le pones el 100% y dejas que se muestre tal cual, el centro se va desplazando hacia la derecha a medida que el monitor es menor, hasta desaparecer, como es lógico.

Lo ideal sería que se mostrase siempre centrado y que, en el caso de monitores de pequeña resolución, sólo se mostrase el centro de la imagen, con el resto de píxeles a derecha e izquierda ocultos como en una suerte de overflow: hidden. y sin scroll claro.

El problema es que no acabo de dar con la solución.

¿Se le ocurre a alguien? Yo no la he visto en ningún sitio, tal vez no exista. He visto algunos sliders que muestran un height fijo en una número de píxeles y luego el width en 100%, pero claro, lo que ocurre es que luego deforma la imagen.

Me gustaría abrir un debate sobre este tema, que creo es interesante.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 20/11/2014, 17:36
Avatar de Mariano_Floyd  
Fecha de Ingreso: marzo-2013
Ubicación: Córdoba
Mensajes: 155
Antigüedad: 11 años, 8 meses
Puntos: 14
Respuesta: Centrar imagen más ancha que la resolución

Hola, probaste usando js? Algo asi por ej, lo acabo de hacer bastante sencillo. Si no entiendes sass avísame y lo hago sin: http://codepen.io/MarianoArg/pen/EaaRxR
  #3 (permalink)  
Antiguo 21/11/2014, 02:22
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Respuesta: Centrar imagen más ancha que la resolución

Sí, ésta parece ser la única solución. Yo había pensado en ver si se podía sin javascript, pero habrá que usarlo. Gracias.
  #4 (permalink)  
Antiguo 02/01/2015, 04:04
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Respuesta: Centrar imagen más ancha que la resolución

Hola de nuevo Mariano.

Reconozco que la solución que planteas es la única posible, pero me gustaría preguntarte si existe alguna forma de hacerlo sin cargar ninguna librería Jquery. El caso es que no es rentable en términos de peso del sitio el cargar ese código para centrar el elemento. Sin comentar el hecho de posibles conflictos con el Jquery del slider en sí.

¿No es posible mediante un javascript más sencillo?

Por otro lado, estoy pensando en utilizar la técnica en este slider:

http://w3widgets.com/responsive-slider/

¿Va a ser posible o estoy perdiendo el tiempo?

Gracias.

Última edición por JUMASOL; 02/01/2015 a las 04:34
  #5 (permalink)  
Antiguo 02/01/2015, 05:22
 
Fecha de Ingreso: diciembre-2014
Mensajes: 111
Antigüedad: 9 años, 11 meses
Puntos: 9
Respuesta: Centrar imagen más ancha que la resolución

¿Porque no lo haces con CSS? En términos de carga es mucho mejor.

Sabiendo cuanto mide la imagen aún sin saber cuánto mide el contenedor se puede centrar fácilmente, simplemente colócala en el centro y dale un margin-left negativo igual a la mitad del ancho de la imagen.
  #6 (permalink)  
Antiguo 02/01/2015, 06:03
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Respuesta: Centrar imagen más ancha que la resolución

Cita:
Iniciado por Sarlit Ver Mensaje
¿Porque no lo haces con CSS? En términos de carga es mucho mejor.

Sabiendo cuanto mide la imagen aún sin saber cuánto mide el contenedor se puede centrar fácilmente, simplemente colócala en el centro y dale un margin-left negativo igual a la mitad del ancho de la imagen.
Sí, esa solución ya la conocía, pero ¿y la responsividad? la imagen también tiene que variar su altura. Supongo que con media queries, sustituyendo la imagen a medida que el dispositivo cambie.

¿O hay otra forma de hacerlo de forma relativa sin añadir la medida de la imagen?

Yo creo que no se puede. Para que la imagen sea responsiva y centrada en su centro con independencia del tamaño del monitor hay que usar javascript. El problema es si se puede hacer con un código simple sin cargar librerías JQuery que son pesadas y entran en conflicto con las propias del slider.

Última edición por JUMASOL; 02/01/2015 a las 06:19
  #7 (permalink)  
Antiguo 02/01/2015, 06:22
 
Fecha de Ingreso: diciembre-2014
Mensajes: 111
Antigüedad: 9 años, 11 meses
Puntos: 9
Respuesta: Centrar imagen más ancha que la resolución

No se si te entiendo, la imagen tiene una altura fija de 500px, ¿no? Luego me hago a la idea de que la tienes en algún contenedor de 500px de altura con una anchura variable, haciendo lo que te he dicho da igual lo que cambie el tamaño de la pantalla, siempre estará centrada y medirá 500px de alto aunque se perderá imagen a izquierda y derecha conforme mengue, pero creo que es lo que buscas, ¿no?
  #8 (permalink)  
Antiguo 02/01/2015, 06:31
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Respuesta: Centrar imagen más ancha que la resolución

Sí, es cierto que indiqué el fijo de alto, pero sólo para presentar el problema.

En realidad es una tontería de la que me acabo de dar cuenta.

¿Qué importa el sobrante a los lados si en los dispositivos menores no existe?

Es decir, el contendor central tiene un ancho máximo de 996px y se trata de dar una imagen que ocupe todo el ancho de la pantalla (imaginemos un monitor Retina de Mac con 2560 píxeles de ancho y de ahí a menos).

Pero a partir de los 996px o menos de anchura de la imagen lo que voy a hacer va a ser sustituir la imagen por otra de tal anchura, recortando los sobrantes a los lados (¿para qué sirven en esos monitores?) que ya sería responsiva con el alto variante, eliminando el estilo que estamos discutiendo ahora para la imagen por otro estilo variable.

Porque un hecho fijo es que voy a cargar distintas imágenes a medida que los dispositivos tengan menos resolución.

Creo que es lo correcto. ¿Qué opinas?
  #9 (permalink)  
Antiguo 02/01/2015, 06:41
 
Fecha de Ingreso: diciembre-2014
Mensajes: 111
Antigüedad: 9 años, 11 meses
Puntos: 9
Respuesta: Centrar imagen más ancha que la resolución

Ciertamente opino como tú, pero por otro motivo, la conexión: para un sobremesa conectado a una WiFi normal cargar una imagen de tal tamaño no supone demasiado problema, para un 3G de un móvil y la mayoría de los 4G que aún funcionan regular, en España al menos, cargar esa imagen puede ser desesperante y más teniendo en cuenta que ni siquiera van a poder verla entera.
  #10 (permalink)  
Antiguo 02/01/2015, 06:59
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Respuesta: Centrar imagen más ancha que la resolución

100% de acuerdo.

Doy por terminado el tema de forma satisfactoria.

Gracias a todos.
  #11 (permalink)  
Antiguo 20/04/2015, 01:51
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen más ancha que la resolución

Hola!!!

Tengo este mismo problema con este index:
http://tempus-social.es/index7.asp


Quiero que la imagen se centre siempre de esta forma:
Subido en subir imagenes

Pero desconozco el alto de la imagen, ya que la sube el user a través del gestor de contenido.

¿alguna ayuda?
¿qué tengo que modificar en el JS para evitar el alto fijo de 500px?

Etiquetas: resolución, tamaño
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 14:59.