Me podéis dar algunas sugerencias, ¡gracias! Lo que intento hacer es un mapa que al mover el ratón por encima de un país, este cambia de color (colocandose una imágen recortada sobre el MAP AREA).
¡Gracias por anticipado!

| |||
Ver lo mismo en diferentes pantallas Hola, tengo un PC con una pantalla de 17'' y un protatil de 15''4. Estoy desarrollando un pequeño JavaScript que crea un efecto de mousover sobreponiendo una FOTO sobre un MAP AREA (lo hago con DOM). Para que functione en todas las resoluciones el código calcula el top y el left de tal manera que se vea siempre sobre el MAP AREA y se cree el efecto deseado. El problema es que en una pantalla de diferentes pulgadas la imágen sale un poco a un lado (la altura se queda igual, que es lo que quiero). ¿De que manera podría hacer que salga siempre sobre el MAP AREA en todos los tamaños de pantalla? Aunque en las dos pantallas las tengo con 1280 px de ancho parece que en una 1 pixel "mide más" fisicamente que en la otra. No se, estoy buscando una relación para hacerlo, en función del ancho en pulgadas del monitor(si es que se puede sacar), o sacandole la posición al MAP AREA si se puede y darsela a la IMÁGEN que se coloca encima. Me podéis dar algunas sugerencias, ¡gracias! Lo que intento hacer es un mapa que al mover el ratón por encima de un país, este cambia de color (colocandose una imágen recortada sobre el MAP AREA). ¡Gracias por anticipado! ![]() |
| |||
Respuesta: Ver lo mismo en diferentes pantallas El tema es calcular la posición de manera relativa a la zona que te sirve de marco y no respecto de la pantalla. En el ejemplo que te pongo tenemos tres capas dos de ellas se mueven aleatoriamente pero una de ellas lo hace respecto de la pantalla y la otra respecto de la tercera capa. position: relative; position: absolute; para la capa con position: relative; el punto 0,0 coincide con la esquina superior izquierda de la capa que hace de fondo, mientras que para la otra capa el punto 0,0 és el de la ventana. Creo que adaptando todo esto puedes solucionar lo que necesitas. Quim
Código HTML:
Ver original Última edición por quimfv; 02/02/2010 a las 07:40 Razón: Pongo "Creo" en negrita |
| |||
Respuesta: Ver lo mismo en diferentes pantallas Muchas gracias! Me estoy dando cuenta de que el problema está solamente en el navegador de Mozilla (la primera vez que el IE me deja contento). Entonces, todo este rollo que he estado contando solamente ocurre en Mozilla. Lo curioso es que en el monitor de 17'' se ve bien, solamente en el de 15''4, y solamente en el Mozilla. Intentaré ver si son los ajustes del navegador o no he encontrado la mejor manera de calcular la posición para este navegador. Última edición por mortal2008; 02/02/2010 a las 07:26 |
| |||
Respuesta: Ver lo mismo en diferentes pantallas Si, functiona en IE, Safari y Chrome pero no funciona en Firefox y Opera (tengo las últimas versiones de todos). ¿Cuál podría ser la causa? La función con la que calculo la posición del contenedor del mapa (para que a partir de ella coloque la imágen sobre el MAP AREA) es ésta:
Código:
function get_window_size() { var size = Array(800, 600); if (typeof window.innerWidth != 'undefined') { //Esto para la mayoría de los navegadores, incluyendo Mozilla size[0] = window.innerWidth, size[1] = window.innerHeight } else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) { //Esto para IE y Opera size[0] = document.documentElement.clientWidth, size[1] = document.documentElement.clientHeight } else { //Esto para navegadores más antiguos size[0] = document.getElementsByTagName('body')[0].clientWidth, size[1] = document.getElementsByTagName('body')[0].clientHeight } return size; } Última edición por mortal2008; 02/02/2010 a las 07:42 |
Etiquetas: |