viernes 6 de noviembre de 2009

Menú vertical desplegable

|

Ayer estaba haciendo una plantilla (una de esas que siempre empiezo y nunca termino) y después de "armar todas las partes" me di cuenta que ya no quedaba espacio para agregarle un menú y entre tantas tonterías decoraciones que le había puesto se veía más saturado de lo que de por sí ya estaba.
Así que pensé: -¿por qué no poner un menú desplegable que esté escondido y que aparezca cuando presiono un botón?
De esta forma podemos meter varias pestañas y el menú no se verá saturado porque estará escondido y se desplegará hasta que el usuario lo decida, de igual modo se oculta de nuevo con el botón.
Pueden ver un ejemplo en este blog de pruebas.

Para poner este dinámico menú entra a Diseño > Edición de HTML y pega antes de </head> lo siguiente:
<script type='text/javascript'>
//<![CDATA[
<!-- inicio
var mov;
var xpos=-200;

function VerOcultarMenu() {
if (mov==2) { mov=-2} else {mov=2};
document.getElementById("MenuDesplegable").style.top=parseInt(document.getElementById("BotonMenu").style.top)+30+"px";
document.getElementById("MenuDesplegable").style.visibility="visible";
MoverMenu() }

function MoverMenu(){
xpos=xpos+4*mov;
if(xpos <- 200) {xpos=-200};
if(xpos > 0) {xpos=0};
document.getElementById("MenuDesplegable").style.left=xpos+"px";
if (xpos <=-200 || xpos >=0) {window.clearTimeout() } else {window.setTimeout("MoverMenu();",50);} }
// final -->
//]]>
</script>

Ahora antes de la etiqueta </body> pega esto:
<div id='BotonMenu' style='display:scroll;position:fixed;top:100px;left:0px;'>
<a href='javascript:void(0)' onclick='VerOcultarMenu();' title='Mostrar / Ocultar'>
<span style='font-weight:bold; border:1px solid red; text-align:center; padding:5px; background:#ccc; color:#000;'>Ver/Ocultar menú</span></a>
</div>


Y por último después de la etiqueta <div id='outer-wrapper'> pega esto:
<div id='MenuDesplegable' style='position:fixed; visibility:hidden; background:#ccc; z-index:1;'>
<table style='border:1px solid red; width:150px; text-align:center; padding:5px;'>
<tr><td style='border-bottom:1px solid #000;'><a href='#'>Pestaña 1</a></td></tr>
<tr><td style='border-bottom:1px solid #000;'><a href='#'>Pestaña 2</a></td></tr>
<tr><td style='border-bottom:1px solid #000;'><a href='#'>Pestaña 3</a></td></tr>
<tr><td style='border-bottom:1px solid #000;'><a href='#'>Pestaña 4</a></td></tr>
<tr><td style='border-bottom:1px solid #000;'><a href='#'>Pestaña 5</a></td></tr>
<tr><td style='border-bottom:1px solid #000;'><a href='#'>Pestaña 6</a></td></tr>
<tr><td style='border-bottom:1px solid #000;'><a href='#'>Pestaña 7</a></td></tr>
<tr><td><a href='#'>Pestaña 8</a></td></tr>
</table>
</div>


Personalización:
En el segundo código cambia Ver/Ocultar menú por el texto que quieras para tu botón. Utiliza lo que está en color verde para cambiar el color de fondo, color de texto y color de borde del botón.
También puedes usar una imagen como botón, sólo remplaza el texto por este código y cambia la URL de la imagen:

<img src="URL de la imagen" />

En el tercer código cambia el signo de gato (#) por la URL del enlace, y Pestaña por el texto que quieras para el vínculo.
Si quisieras agregar más pestañas sólo repite antes de </table> esta línea:

<tr><td style='border-bottom:1px solid #000;'><a href='#'>Pestaña 1</a></td></tr>


Para cambiar el color de fondo del menú así como el borde y el ancho, cambia lo que está en color verde del tercer código.
Sencillo ¿no?
Tantos códigos me han dado mucha sed ¿qué tal una cerveza?

56 comentarios:

el venado dijo...

Que bueno que lo subiste.
Siempre con algo nuevo, que todos queremos tener.
Ojala pronto subas trucos para celebrar la navidad, ya se que es Noviembre.

Jpz dijo...

Que tal Potro.
Muy buen dato. Voy a ver cómo podemos implementarlo.
Al igual que tú, estoy adaptando una nueva plantilla para hacer un "Cambio de Imagen". Ésto trae un poco de trabajo, ya que, si bién estas acostumbrado a la actual, también hay que comenzar a "familiarizar" con ella.
Todo cambio implica un costo.
Saludos.
Jpz.-

José GDF dijo...

Oye está muy guapo, sobre todo por la pequeña animación que le has puesto. Precisamente estoy atascado en el menú de mi nuevo diseño, todavía no sé lo que hacer con él...

Y el no ponerlo, y dejar que el usuario decida si verlo o no, no parece una mala idea.

Me lo apunto como posible.

cyberbloggero dijo...

Wow!!! que buena solución!!! ademas, no solo sirve para poner las etiquetas (entre otras cosas) de nuestro blog, puede utilizarse para infinidad de cosas!!! Muy buen truco!!!

Un abrazo!!!

El Potro dijo...

el venado, no hay mucho para Navidad pero a ver qué se puede sacar al menos para decorar un poco el blog. Saludos.

Jpz, habrá que esperar al cambio de imagen, aunque en lo personal me gusta mucho la que tienes. Saludos.

José GDF, quizá como menú principal no, pero pude funcionar para otro tipo de menús como Twitter, Facebook, etc. Saludos.

brother, tienes toda la razón, se puede aplicar para muchas cosas, incluso se le pueden agregar íconos para que se vea más chulo el menú. Saludos.

El Potro dijo...

Habrá que estar pendientes de tu plantilla y de la de Jpz.
Date una vuelta por btemplates.com quizá encuentres alguna con la que te puedas inspirar.
Saludos!

La Trucoteca de Blogs dijo...

Hola El Potro!
Te felicito por el menu: es de muy buena calidad ;)
Le he echado un ojo y no me he podido resistir a comentarlo
Saludos!!

El Potro dijo...

Hola La Trucoteca de Blogs,

La verdad a mí igual me gustó, aunque no le puse mucho empeño en el diseño pero seguro que quienes lo usen les quedará mucho mejor.
Gracias por tu visita.
Saludos!

@rielCastellanos dijo...

Hola El Potro, estoy aqui de vuelta (como siempre) quiero hacerte una consulta, tu sabes como puedo hacer para que las categorias o etiquetas estes a su vez subdivididas por categorias o etiquetas? para ser mas explicativo fijate en la seccion "categorias" de este blog: http://zonacerebral.com/

Gracias, que tengas buen dia.

El Potro dijo...

Hola @rielCastellanos,

JMiur tiene una estupenda explicación de cómo hacerlo, te dejo el enlace:
http://vagabundia.blogspot.com/2008/04/jugando-con-las-etiquetas-de-blogger.html

Saludos.

@rielCastellanos dijo...

Se me ocurrio algo, tal vez no sea tan genial pero se m ocurrio y quiero consultarte, que tal si copio las etiquetas que tenggo actualmente y las pego en mi blog a manera de enlaces (nuevo elemnto HTML...) y las ordeno como yo quiero, tendria el mismo resultado al darle click no? por ejemplo, esta es la etiqueta original (http://blogunah.blogspot.com/search/label/Noticias) si la copio y la pego como enlace normal, tendria el mismo efecto NO???? esa es mi duda, me parece muy simple q no se si sea posible, gracias amigo Potro

El Potro dijo...

Sí, de hecho hay quienes así hacen su "sub menú" de etiquetas, sólo que si a un post le metes una categoría y una "sub categoría" se verán ambas etiquetas en el post.
Pero es una opción bastante sencilla y efectiva la que mencionas.

Saludos.

Ing. Industrial dijo...

mae todo lo he hecho tal como tu dices pero no dunciona, lo unico que me sale es el menu pero lo que es l;a tabla no sale ni se esconde ...por favor pasa por aca solucioneszapata.blogspot.com , haber si me puedes ayudar compa...soy un fiel seguidor de tu blog...y en donde me meto lo comento y lo pongo como una referencia de CALIDAD...SIGUE ASI POTRO QUE LO HACES BIEN...ESPERO TU RESPUESTA COMPA

El Potro dijo...

Ing. Industrial,

Ya he pasado pero no veo puesto los códigos del menú para ver cuál es el problema. Inténtalo de nuevo, quizá ahora tengas más suerte =)
Gracias por tus comentarios y por la promoción.
Saludos!

Ing. Industrial dijo...

ya puse el codigo pero sigue sin funcionar por-fa loco si se da una vueltita por la pagina solucioneszapata.blogspot.com para ver por que no funciona este menu que me agrada un monton... :(

gracias de antemano potro sos una teja loco

El Potro dijo...

Hola Ing. Industrial,

Mil disculpas, el código tenía un ligero pero circunstancial error.
Copia y pega de nuevo el último código y deberá funcionar, cualquier cosa me comentas.

Saludos!

Ing. Industrial dijo...

loco ya esta funcionando, si deseas puedes pasar para que lo veas..gracias man..potro estas en toda

Diego dijo...

Hola potro soy otra vez yo q te estuve escribien en la parte del menu horizontal pero era este menu el q queria posicionar! otra pregunta vos me podrias mandar la css y el .js de este menu.??
Muchas gracias Saludos!

El Potro dijo...

Hola Diego,

Ya me parecía extraño que en el otro post decía ver/ocultar menú ;)
Este menú no tiene archivo .js alojado en otra parte, el Javascript es todo el primer código, y el CSS serían las partes en color verde.

Saludos.

Diego dijo...

buenisimo!!ahora de nuevo la pregunta ahi estuve probrando con mover todo el menu para la derecha pero me queda mal!!como puedo hacer!???
Disculpa las molestias!
Saludos!

El Potro dijo...

Al inicio del segundo código está esta parte:

left:0px;

Cámbialo por right:0px;

Saludos.

Diego dijo...

Muchas gracias ya lo habia podido mover le cambie los valores de xpos y quede muy bien!!ahora otra pregunta lo q hice fue probar con guardar todo el codigo en un archivo .js y llamarlo desde html!en el cual puse

script scr="menu.js" type="text/javascript"


es correcto esto? porq a mi no me funciona!!
muchas gracias y saludos!

El Potro dijo...

Mejor déjalo así como esta; si lo subes a un servidor vas a alentar la carga de la página y podrá funcionar o no dependiendo del estado del hosting.

Saludos.

Diego dijo...

Okas muchas gracias por tus respuestas!!saludos!!

Diego dijo...

Hola de nuevo!!otra pregunta!! cuando pongo el menu q sale desde la izquierda hacia la derecha hay alguna manera de que lo que tenga en el costado derecho se me desplaze hacia abajo cuando salga el menu!??

El Potro dijo...

Hola Diego,

Si quieres poner todo el menú a la derecha busca también casi al final del primer código esta parte:

.style.left=xpos+

Cambia el left por right.
Saludos.

UFE-Activo dijo...

ejje buen Post, Se le agradece
Con este post y otro de Jmiur Logre aser un miniforo
y Este truco de el Menu Me Sirvio Mucho..
Aqui le dejo para q lo vean el Foro: UFE Activo | Foro De UFE(MAT)
Muchas Gracias

David Rubio dijo...

Hola potro,me gustaria perguntarte si este menu se podrian sustituir los enlaces por un gadget
Me explico q al pinchar en abrir se abra pero en vez de haber enlaces ,haya un gadget
Es q quiero poner un cuestionario en mi blog,y asi estaria oculto pero a mano

El Potro dijo...

Hola David Rubio,

Depende de cómo esté hecho el gadget, necesitaría verlo para saber si se puede colocar ahí.

Saludos.

El Potro dijo...

Sí se puede, sólo encierra el código del formulario entre:

<div id='MenuDesplegable' style='position:fixed; visibility:hidden; background:#ccc; z-index:1;'>
y
</div>

Saludos.

David dijo...

el formulario es demasiado grande y despues no cierra bien el gadget,pero con algo mas pequeño si funcionaria

gracias

El Potro dijo...

Claro, tendría que ser un formulario corto.
Saludos.

$$__jefferson__$$ dijo...

hola
por favot explica un poco mas como cambiarlo de color (y) (o) de diseño espero tu respuesta

bay

El Potro dijo...

Hola ,

En el tercer código donde dice background:#ccc; ahí cambias el color de fondo del menú, usa el código del color que más te guste. Si lo prefieres puedes poner una imagen de fondo, en ese caso el código sería así:
background:url(URL de la imagen);

Saludos.

$$__jefferson__$$ dijo...

ok gracias pero me surgio otto problema el color del borde aparece montada en la imagen como hago para quitarlo?

El Potro dijo...

Cambia el código del botón que tienes por este:

<div id='BotonMenu' style='display:scroll;position:fixed;top:100px;left:0px;'>
<a href='javascript:void(0)' onclick='VerOcultarMenu();' title='Mostrar / Ocultar'>
<div style='height:32px; width:150px; border:1px solid red; text-align:center; padding:0px; background:url(http://img705.imageshack.us/img705/6916/indice02.jpg) no-repeat; color:#FFBBE8;'></div></a>
</div>

Saludos.

$$__jefferson__$$ dijo...

perdon por molestar tanto pero no me deja me sale este mensaje de error:
Mensaje de error de XML: The element type "div" must be terminated by the matching end-tag "


espero tu respuesta.....

El Potro dijo...

No es ninguna molestia ;)
Copia de nuevo el código, el error te está diciendo que falta la etiqueta de cierre que está al final, quizá omitiste ponerla.

Saludos.

$$__jefferson__$$ dijo...

por fin ¡¡¡ me funciono gracias por compartir tus conocimientos ...¡¡¡
otra duda mas como se hace para poner esos mensajes arriba del cuadro de comentarios..???????

El Potro dijo...

Entra en Configuración > Comentarios, y en donde dice Mensaje del formulario de comentarios, ahí escribe el mensaje que quieres que aparezca arriba de la caja de los comentarios.

Saludos!

$$__jefferson__$$ dijo...

listo gracias por todo el blog se ve mucho mejor gracias a ti..

bay

Fero dijo...

Tengo un par sobre el menú amigo:
Como hago para cambiar el color de la tabla por gris?

Es posible colocar la palabra "menú" o una imagen justamente en el borde de la tabla deslizante, de tal manera que al ocultarse quede visible la palabra menu en forma vertical, o una imagen?

muchas gracias de antemano.
saludos.
dhesc.blogspot.com/

El Potro dijo...

Hola Fero,

Para cambiar el botón de Ver/Ocultar sustituye ese código por el código que tengo en el comentario #41 sólo cambia la URL de la imagen que está ahí por la tuya.

El color de la tabla ya está en gris, para cambiarlo por otro cólor fíjate en el último código donde dice background:#ccc; ahí pon el código del color que gustes.

Saludos!

Fero dijo...

Muchas gracias amigo!
te felicito por tan excelente pagina.
Estaré por acá con frecuencia.

El Potro dijo...

Claro que sí, eres bienvenido las veces que quieras ;)

Fero dijo...

Estoy probando el menú en un blog de pruebas antes de colocarlo en mi nueva web y esta quedando muy bien, gracias.

Tengo unas preguntas mas amigo potro, si no es molestia:
Sin colocar ninguna imagen, sino dejando El "Ver/Ocultar-Menu", ¿es posible que haya menos espacio entre el Ver/Ocultar-Menu y los enlaces? Es decir hay como medio centimetro entre ellos, es posible que queden casi totalmente juntos?

La otra pregunta es: Hay alguna parte del código que premita acelerar el efecto deslizante al hacerle click para que sea mas rapido?

El Potro dijo...

Hola Fero,

Para acelerar la velocidad del desplazamiento busca esta parte del código y cambia lo que está en negrita por 10

{window.setTimeout("MoverMenu();",50);} }

Para reducir la separación entre el botón y la tabla busca en el código esta parte y cambia lo que está en negrita por 25

("BotonMenu").style.top)+30+"px";

Saludos.

Urko dijo...

Aupa majo hay alguna forma de hacer que un menu se habra y una vez abierto los demas tambien se habran?

El Potro dijo...

No Urko, ya que el contenido del menú es una tabla en CSS.
Saludos.

Publicar un comentario en la entrada

Gracias por tus comentarios. Si tienes una consulta sobre tu blog deja la dirección del mismo.

 

Ciudad Blogger. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com

Ir arriba Ir abajo