Urgente en menu desplegable

Hola necesito la ayuda de ustedes, ya que baje un menu desplegable y
al momento de ponerlo en la página se pone bien con las coordenadas que le doy
se ve perfectamente el menu en la página solo que al momento de cambiar
la resolución de la computadora este menu cambia de posición y se desacomoda,
quisiera saber como puedo evitar que se mueva este menu de intentar cuando le
cambio la resolución de la computadora, las dirección donde baje el menu con
sus explicaciones es:
http://www.ciudadfutura.com/javascriptdesdecero/casos/barramenus/barramenus.htm
Gracias, espero respuesta.
Antonio.
Respuesta
Por lo que he podido comprobar en el código que utilizas el problema puede surgir si cambias de resolución en medio del uso de la página. No deberías tener problemas si utilizaras la misma resolución de principio a fin de la página, para comprobar resoluciones es mejor cambiar antes de tener la página abierta ya que el navegador puede no tomarse bien el cambio de resolución posicionando el menu incorrectamente.
Esperaba alguna modificación a mi código javascript para poder solucionarlo me dicen que se puede simplemente poniendo position top y left en porcentajes de pantalla, espero alguna otra sugerencia, gracias de todas formas.

8 respuestas más de otros expertos

Respuesta
1
Puedes hacer que la página se redirija a otro sitio para que no se pierda el menu, es decir, acomodas el menu entres resoliciones distintas y luego la redireccionas.
Aquí esta el código para redireccionar la página según la resolución del usuario:
<html>
<head>
<script LANGUAGE="JavaScript">
function redireccionar() {
var url640x480 = "http://www.tu-sitio.com/640x480";
var url800x600 = "http://www.tu-sitio.com/800x600";
var url1024x768 = "http://www.tu-sitio.com/1024x768";
if ((screen.width == 640) && (screen.height == 480))
window.location.href= url640x480;
else if ((screen.width == 800) && (screen.height == 600))
window.location.href= url800x600;
else if ((screen.width == 1024) && (screen.height == 768))
window.location.href= url1024x768;
else window.location.href= url640x480;
}
</script>
</head>
<body onLoad="redireccionar()">
</body>
</html>
Muy buen respuesta en caso de que ya no haya otra solución, ya que esperaba corregir el script de este menu para acomodarlo como me decían que por medio de porcentajes en left y en top, el problema en lo que me acabas de pasar seria tener que hacer una página de cada resolución para reacomodar el menu.
Gracias
Adiós
Respuesta
1
El problema reside en que has de especificar las coordnadas y el tamaño del menu de forma relativa es decir, en vez de poner 300px pues pones 75%.
Debes hacerlo con porcentajes.
Como pongo los % ya lo intente
Solo encontré lo siguiente en uno de los archivos .js con lo que puedes configurar la posision del menu que es:
var px, py;
if (miNavegador.IE)
px = document.body.offsetWidth - 780;
else
px = window.innerWidth -780;
py = 120;
/*
Sólo queda colocar los menus en la página, esto lo hace el objeto con el método dibujar.
Argumentos: posición horizontal y vertical en pixels.
*/
menu1.dibujar(px,py);
menu2.dibujar(px+102,py);
menu3.dibujar(px+204,py);
menu4.dibujar(px+306,py);
menu5.dibujar(px+408,py);
Así se posiciona en el centro con la resolución de 1024x768 y si cambia alguna resolución se mueve de lugar, mi página donde lo probé es:
http://mx.geocities.com/jacoronado64/
Espero la respuesta gracias.
Respuesta
Pues mira lo que se me ocurre es que la intentar por y la intentar y la dejes en función a una variable que considere la resolución de la pantalla del usuario y que de acuerdo a la resolución el menu digamos que ponga el menu a un 10 % del margen izquierdo y a un 20 % del margen top
es decir izq=resolucionancho*. 10
top=resolucionlargo*. 20
Aquí te anexo un código que te dice la resolución de la pantalla
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<script @language="JavaScript1.4">
//
function BrowserInfo()
{
this.name = navigator.appName;
this.codename = navigator.appCodeName;
this.version = navigator.appVersion.substring(0,4);
this.platform = navigator.platform;
this.javaEnabled = navigator.javaEnabled();
this.screenWidth = screen.width;
this.screenHeight = screen.height;
}
var b = new BrowserInfo();
document.write(b.screenWidth);
document.write( " ");
document.write(b.screenHeight);
</script>
</body>
</html>
Gracias por lo de ver la resolución en la pantalla, pero lo que necesito es que me digas más explisitamente como poner las dimensines por porcentajes.
Gracias
Respuesta
No entiendo bien la pregunta... porque a mi me funciona perfecto si cambio la resolución de mi monitor con el código tal y como esta.
Puede que el problema venga de como le das las coordenadas...
¿Tienes tu página colgada en algún sitio para ver si le veo algo raro?
Donde viste que esta el menu a la derecha de la página, este se ve perfectamente en cualquier resolución, pero al momento de usar el menu en mi página y ponerlo en el centro de mi página este meneuse posiciona perfectamente pero al cambiarle la resolución de la PC, entonces se mueve, este menu ya lo probé si quieres verlo en mi página de prueba en construcción la dirección es:
http://mx.geocities.com/jacoronado64/
Gracias, esperare tu ayuda.
Respuesta
<%=Texto%>
En la etiqueta java que creó el menu, vendrán unos valores, en pixeles. Solamente, deberás incluir el símbolo % detrás del numero que desees (del 1 al 100), y lo estarás dando en tantos por cientos de modo que aunque cambies la resolución, se vera igual.
Hasta otra y espero haberte ayudado!
Solo encontré lo siguiente en uno de los archivos .js con lo que puedes configurar la posision del menu que es:
var px, py;
if (miNavegador.IE)
px = document.body.offsetWidth - 780;
else
px = window.innerWidth -780;
py = 120;
/*
Sólo queda colocar los menus en la página, esto lo hace el objeto con el método dibujar.
Argumentos: posición horizontal y vertical en pixels.
*/
menu1.dibujar(px,py);
menu2.dibujar(px+102,py);
menu3.dibujar(px+204,py);
menu4.dibujar(px+306,py);
menu5.dibujar(px+408,py);
Así se posiciona en el centro con la resolución de 1024x768 y si cambi alguna resolución se mueve de lugar, la página donde lo probé es:
http://mx.geocities.com/jacoronado64/
Espero la respuesta gracias.
Respuesta
Inclúyelo en un div
<div style="position:absolute; top:125px;left:125px">
aqui pones tu combo con las coordenadas de posición que quieras en el div
</div>

Supongo que te funcionara
Lo que me acabas de decir lo acabo de colocar en la página que hace relación pero solo alarchivo del menu desplegable que es :
<script language="JavaScript" src="rutbasicas.js">
</script></div>
<script language="JavaScript" src="objmenucsscomp.js">
</script>
como pongo los % ya lo intente
Solo encontré lo siguiente en uno de los archivos .js llamado objmenucsscomp.js con lo que puedes configurar la posision del menu que es:
var px, py;
if (miNavegador.IE)
px = document.body.offsetWidth - 780;
else
px = window.innerWidth -780;
py = 120;
/*
Sólo queda colocar los menus en la página, esto lo hace el objeto con el método dibujar.
Argumentos: posición horizontal y vertical en pixels.
*/
menu1.dibujar(px,py);
menu2.dibujar(px+102,py);
menu3.dibujar(px+204,py);
menu4.dibujar(px+306,py);
menu5.dibujar(px+408,py);
Así se posiciona en el centro con la resolución de 1024x768 y si cambia alguna resolución se mueve de lugar, mi página donde lo probé es:
http://mx.geocities.com/jacoronado64/
Espero la respuesta gracias.
Respuesta
Sé el problema que tienes porque muchos han tenido este problema. Se puede solucionar tratando las distintas resoluciones y haciendo menu por resolución pero como eso es más complejo te aconsejo que cojas el menú de:
http://www.mundojavascript.com/menues/
Y allí puedes elaborar y hacerlo otra vez de nuevo sólo con cambiar los nombres.
ANIMO y SUERTE
Rodisa
PD1:
Esta respuesta tuya ya la había contestado, ya entre a la dirección que dices pero hay muy pocos menús de todos modos gracias, una pregunta ¿sabes cuáles son las resoluciones más frecuentes de los usuarios para redireccionar?
Gracias
Respuesta
Lo he mirado un poco por encima y la que tienes que hacer es
1.- Detectar la resolución de la pantalla
2.- Una vez detectada la resolución de la pantalla tienes que poner las coordenadas (en las capas) para que se visualice correctamente en función de dicha resolución.
Aplicado a tu ejemplo:
Para detectar la resolución puedes utilizar un script similar a este:
<script LANGUAGE="JavaScript">
function resolccion() {
if ((screen.width == 640) && (screen.height == 480)){
alert("l640x480");
// pones las coordenadas que te interesen
}
else if ((screen.width == 800) && (screen.height == 600)){
alert("url800x600");
// pones las coordenadas que te interesen
}else if ((screen.width == 1024) && (screen.height == 768)) {
alert("1024x768");
// pones las coordenadas que te interesen
}
</script>
Más concretamente en tu ejemplo debes de tocar el archivo objmenucsscomp, hay es donde se definen las posiciones de las capas y aplicar unas coordenadas u otras en función de la resolución utilizando el script anterior.
¿quieredecir qué tengo que poner diferente posision al menu en diferentes resoluciones?,
¿Le puedo poner una sola posision al menu pero que sea esa misma para todas las resoluciones?,
Gracias.
Antonio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas