Foros del Web » Programando para Internet » Javascript »

centrar imagen a la derecha de la pantalla

Estas en el tema de centrar imagen a la derecha de la pantalla en el foro de Javascript en Foros del Web. El siguiente código me deja una imagen estática alineada justo al lado de la barra de scroll: Cita: <a href="#" style="z-index:9999999; position: fixed !important; position:absolute; ...
  #1 (permalink)  
Antiguo 09/07/2009, 10:32
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 8
centrar imagen a la derecha de la pantalla

El siguiente código me deja una imagen estática alineada justo al lado de la barra de scroll:
Cita:
<a href="#" style="z-index:9999999; position: fixed !important; position:absolute; bottom:300; right:0px; _top:expression(eval(document.compatMode && document.compatMode=='CSS1Compat') ? document.documentElement.scrollTop + (document.documentElement.clientHeight-this.clientHeight) : document.body.scrollTop + (document.body.clientHeight-this.clientHeight));cursor:hand;cursor:pointer;" onclick="javascript:alert('Sign Up');"><img src="imagen.gif" alt="Sign Up" style="border: 0" width="60"/></a>
Lo que no sé es como hacerlo para que independiente de la resolución del navegador esta quede al centro de la pantalla. Se qué la clave debe estar en lo que puse en rojo, pero no se me alumbra como hacerlo :$
  #2 (permalink)  
Antiguo 09/07/2009, 12:33
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: centrar imagen a la derecha de la pantalla

Hola

A ver que te parece esto

Código javascript:
Ver original
  1. function fixImagen () {
  2. var ancho = parseInt(((screen.width) / 2) - 150); // menos la mitad del width de la imagen
  3. var alto = parseInt(((screen.height) / 2) - 150); // menos la mitad del height de la imagen
  4. var elem = document.getElementById("img");
  5. elem.style.top = alto + "px";
  6. elem.style.left = ancho + "px";
  7. }
  8. window.onload = fixImagen;

y ahora lo metes en un div

Código html:
Ver original
  1. <div id="img" style="z-index:9999999; position: fixed !important; position:absolute; top:0; left:0px; _top:expression(eval(document.compatMode && document.compatMode=='CSS1Compat') ? document.documentElement.scrollTop + (document.documentElement.clientHeight-this.clientHeight) : document.body.scrollTop + (document.body.clientHeight-this.clientHeight));cursor:hand;cursor:pointer;">
  2. <a href="#" onclick="javascript:alert('Sign Up');">TEXTO</a>
  3. </div>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 09/07/2009, 12:56
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 8
Respuesta: centrar imagen a la derecha de la pantalla

No no no no no Adler ()
(Gracias por contestar)

El código que tu has puesto coloca al centro de la pantalla un texto o una imagen.
Lo mío es poner una imagen al lado de la barra de desplazamiento. El código que postié me lo deja al lado de la barra y la imagen no se mueve, independiente de que muevas el scroll. Lo que no sé hacer es "subirla" para que quede a la mitad de la pantalla (por lo mismo puse en rojo el "bottom", a mano podría ponerle una distancia en pixels pero así no se vale, además solo me serviría para la resolución en que estoy trabajando). No sé si me he explicado bien.
Avisame y te traduzco
  #4 (permalink)  
Antiguo 09/07/2009, 13:50
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: centrar imagen a la derecha de la pantalla

Hola

Prueba ahora

Código javascript:
Ver original
  1. function fixImagen () {
  2. var alto = parseInt(((screen.height) / 2) / 2); // menos la mitad del height de la imagen
  3. var elem = document.getElementById("img");
  4. elem.style.bottom = alto + "px";
  5. }
  6. window.onload = fixImagen;

Código html:
Ver original
  1. <div id="img" style="z-index:9999999; position: fixed !important; position:absolute; bottom:0; right:0px; _top:expression(eval(document.compatMode && document.compatMode=='CSS1Compat') ? document.documentElement.scrollTop + (document.documentElement.clientHeight-this.clientHeight) : document.body.scrollTop + (document.body.clientHeight-this.clientHeight));cursor:hand;cursor:pointer;">
  2. <a href="#" onclick="javascript:alert('Sign Up');">IMAGEN</a>
  3. </div>

PD: ¿Consigues fijar la imagen en IE?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 09/07/2009, 14:03
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 8
Respuesta: centrar imagen a la derecha de la pantalla

Mmm, en FF queda fija, pero no al centro, y en IE queda fija pero en la parte de abajo :S
  #6 (permalink)  
Antiguo 10/07/2009, 05:59
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: centrar imagen a la derecha de la pantalla

Hola

Después de hacer algunas pruebas, a mi me funciona en FF y IE. En ambos fija y centra la imagen a la derecha

Código javascript:
Ver original
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. #fix { z-index:15000;}
  5. body > div#fix { position: fixed; right:0px; bottom:0px;}
  6. </style>
  7.  
  8. <script type="text/javascript">
  9. function fixImagen () {
  10. var alto = parseInt(((screen.height) / 2) / 2);
  11. var elem = document.getElementById("fix");
  12. elem.style.bottom = alto + "px";
  13. }
  14. window.onload = fixImagen;
  15. </script>
  16. </head>
  17. <body>
  18.  
  19.  
  20. <div id="fix">
  21. <a href="#"><img src="img.gif"/></a>
  22. </div>
  23.  
  24. </body>
  25. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 10/07/2009, 07:24
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 8
Respuesta: centrar imagen a la derecha de la pantalla

Hola Adler
Testié el código en IE 6.0 y FF 3.0
En ambos casos la imagen se alinea a la derecha, pero no totalmente al centro, así que modifiqué esta linea para solucionar eso:

Cita:
var alto = parseInt(((screen.height) / 2) / 1.25);
Ahora con respecto al scroll, en FF no hay problema, pero en IE (ohhh, bendito IE) la imagen se mueve al hacer scroll.
  #8 (permalink)  
Antiguo 10/07/2009, 12:00
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: centrar imagen a la derecha de la pantalla

Hola

Yo uso IE8 y FF3 y funciona correctamente

Suerte

PD: ¿Como llegastes a que hay que dividirlo entre 1.25? ¿Es por el tamaño de la imagen?
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 10/07/2009 a las 12:14
  #9 (permalink)  
Antiguo 10/07/2009, 12:30
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 8
Respuesta: centrar imagen a la derecha de la pantalla

Hola,
Lo del 1.25 no tiene secreto.. solo me puse a jugar con los numeros mientras estaba a pantalla completa y redimensionaba la pantalla hasta que cuadró. Muchas gracias por tomarte la molestia de echarme una manito

Saludos!
  #10 (permalink)  
Antiguo 10/07/2009, 13:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: centrar imagen a la derecha de la pantalla

Hola, otra vez

¿Y si montas un hack para IE 6 y 7?
Código css:
Ver original
  1. <!--[if lte IE 7]>
  2. <style type="text/css">
  3. div#fix {
  4. left: expression( ..... + 'px' );
  5. top: expression( .... + 'px' );
  6. }
  7. </style>
  8. <![endif]-->

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 08:28.