Foros del Web » Creando para Internet » HTML »

Problema con efecto de menu,

Estas en el tema de Problema con efecto de menu, en el foro de HTML en Foros del Web. Hola a todos!!! les describo el problema que tengo: estoy practicando con un efecto basico para un menu con css3, javascript, con etiquetas ul , ...
  #1 (permalink)  
Antiguo 15/11/2012, 17:35
 
Fecha de Ingreso: noviembre-2012
Ubicación: el norte del sur
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Pregunta Problema con efecto de menu,

Hola a todos!!!

les describo el problema que tengo:

estoy practicando con un efecto basico para un menu con css3, javascript, con etiquetas ul , li, y varios links de pruebas. las etiquetas li tienen unas dimensiones ya definidas (colocados por mi) y colores de fondo aleatorios, cuando paso el puntero por encima de las li, estas crecen en tamaño y ademas se mueve 10px arriba de su posicion original.

el problema esta en que cuando paso el puntero por los enlaces dentro de las li, estas regresan a su tamaño y posicion original.

¿como evito esta situacion?

Aqui esta el codigo css, javascript, y html para mayor orientacion.
Código:
ul{
	background: #555;
	position: relative;
	top: 30px;
	left: 50px;
	display: inline-block;
	vertical-align: top;
	zoom: 1; /* Fix for IE7 */
	*display: inline; /* Fix for IE7 */
}

ul li.item{
	box-shadow: -5px -5px 15px #888888;
	width: 100px;
	height: 40px;
	margin: 0 0;
	padding: 5px 5px;
	position: absolute;
	border: 1px solid black;
	border-radius: 10px 0;
	opacity: 0.5;
	transform: skew(-10deg,-20deg);
	-ms-transform: skew(-10deg,-20deg); /* IE 9 */
	-webkit-transform: skew(-10deg,-20deg); /* Safari and Chrome */
	-o-transform: skew(-10deg,-20deg); /* Opera */
	-moz-transform: skew(-10deg,-20deg); /* Firefox */
	list-style-type: none;
}
ul li.item:hover{
	width: 150px;
	height: 60px;
	opacity: 1;
	box-shadow: none;
};

ul li a{
	font: 1em sans-serif;
	text-decoration: none;
}
Código:
jQuery(document).ready(function() {
	$('.item').each(function(index, elemento){
		var r = Math.round(255*Math.random());
		var b = Math.round(255*Math.random());
		var g = Math.round(255*Math.random());
		var color = "rgb("+r+","+b+","+g+")";
		console.log(color);
		$elemento = $(elemento);
		$elemento.css({
			'z-index':index,
			'background-color':color,
			//'left':""+10*index+"px",
			'top':""+30*index+"px",
		})
		.mouseover(function(e){
			var pos = $(e.target).position();
			pos.top += 10;
			$(e.target).css('top',pos.top);
		})
		.mouseout(function(e){
			reset_posicion();
		});
	});

});

var reset_posicion = function(){
	$('.item').each(function(index,elemento){
		$(elemento).css('top',""+30*index+"px");
	});
		
}
Código:
<ul>
	<li class="item"><a href="#" title="android">Android</a></li>
	<li class="item"><a href="#" title="android">PHP</a></li>
	<li class="item"><a href="#" title="android">Node.js</a></li>
	<li class="item"><a href="#" title="android">Wordpress</a></li>
	<li class="item"><a href="#" title="android">Python</a></li>
</ul>
  #2 (permalink)  
Antiguo 17/11/2012, 14:18
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 13 años, 6 meses
Puntos: 16
Respuesta: Problema con efecto de menu,

Siempre igual, porque complicarse con JS si css ya lo hace todo???

Mi recomendacion es que lo hagas completamente en css, podras hacer exxactamente lo mismo. Es mas, sera hasta mas rapido y facil de cargar.

Por lo otro, creo que te has dejado algun archivo de js o algo, falta informacion, pero quitando esto:

Código Javascript:
Ver original
  1. .mouseover(function(e){
  2.             var pos = $(e.target).position();
  3.             pos.top += 10;
  4.             $(e.target).css('top',pos.top);
  5.         })

Es probable que soluciones tu problema.
  #3 (permalink)  
Antiguo 18/11/2012, 11:12
 
Fecha de Ingreso: noviembre-2012
Ubicación: el norte del sur
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con efecto de menu,

Hola moro666.

gracias por tu ayuda.

segui tu recomendacion y pase todo eso a css3 y he tenido buenos resultados.

ahora el problema es que no he podido hacer que las li se superponga una sobre otra y que cuando pase el puntero por encimas se desplacen cierta cantidad de pixeles hacia arriba.

he visto varios ejemplos, perotodos los hacen colocando las coordenadas a mano y con solo 2 div.

nose si en css hay alguna etiqueta que relacione la posicion de un elemento con respecto a su anterior hermano

¿sabes de algun metodo con CSS3 para realizarlo de forma instantanea?
[URL="http://benllycast.99h.com.ar"]
un enlace donde estoy probando: http://benllycast.99h.com.ar[/URL]

Última edición por benllycast; 18/11/2012 a las 11:20
  #4 (permalink)  
Antiguo 18/11/2012, 11:49
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 13 años, 6 meses
Puntos: 16
Respuesta: Problema con efecto de menu,

No acabo de entender que es lo que quieres hacer y no te sale.

Por si acaso, un desplegable con listas es asi:

Código HTML:
Ver original
  1. <ul>
  2. <li>dsgsdg</li>
  3. <li>fdjusfhndu
  4.       <ul><li>gonerlghtj</li>
  5.       </ul></li>
  #5 (permalink)  
Antiguo 18/11/2012, 21:14
 
Fecha de Ingreso: noviembre-2012
Ubicación: el norte del sur
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con efecto de menu,

Hola moro666

gracias por tu ayuda

ya pude solucionar el problema aplicando un margin negativo a los elementos del menu
aqui esta parete de la solucion si alguna ves tiene el mismo problema.

Código CSS:
Ver original
  1. #left-sidebar ul{
  2.                     display: inline-block;
  3.                     padding: 1.7em 0 1.7em 0.2em;
  4.                 }
  5.                 #left-sidebar ul li{
  6.                     list-style-type: none;                 
  7.                     background: -webkit-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%);
  8.                     background: -moz-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%);
  9.                     background: -o-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%);
  10.                     background: -ms-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%);
  11.                     margin-top: -10px;
  12.                     padding: 10px 5px;
  13.                     width: 85px;
  14.                     position: relative;
  15.                     border: 1px solid black;
  16.                     border-radius: 10px 0;
  17.                     box-shadow: -3px -3px 1px #aaa;
  18.                     opacity: 0.8;
  19.                     transform: skew(-6deg,-15deg);
  20.                     -ms-transform: skew(-6deg,-15deg);
  21.                     -webkit-transform: skew(-6deg,-15deg);
  22.                     -o-transform: skew(-6deg,-15deg);
  23.                     -moz-transform: skewX(-6deg) skewY(-15deg);
  24.                 }
  25.  
  26.                 #left-sidebar ul li:hover{
  27.                     font: bold 1em arial;
  28.                     text-shadow: -1px -1px 2px #000;
  29.                     -webkit-text-shadow: -1px -1px 2px #000;
  30.                     -moz-text-shadow: -1px -1px 2px #000;
  31.                     -o-text-shadow: -1px -1px 2px #000;
  32.                     -ms-text-shadow: -1px -1px 2px #000;
  33.                     opacity: 1;
  34.                     margin-top: -20px;
  35.                     margin-bottom: 10px;
  36.                 }
  37.  
  38.                 #left-sidebar ul li a{
  39.                     font: bold 1em arial;
  40.                     text-decoration: none;
  41.                     width: 100%;
  42.                     height: 100%;
  43.                     color: white;
  44.                 }
  45.                 #left-sidebar ul li a:hover{
  46.                     text-shadow: -1px -1px 2px #000;
  47.                 }
  #6 (permalink)  
Antiguo 19/11/2012, 07:10
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 13 años, 6 meses
Puntos: 16
Respuesta: Problema con efecto de menu,

Jajajaj, me alegro que te funcione. No te preocupes, ya tengo mis propias plantillas para hacer menus desplegables!

Etiquetas: css
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 05:53.