Foros del Web » Programando para Internet » Jquery »

Acceder a imagen de fondo con jquery

Estas en el tema de Acceder a imagen de fondo con jquery en el foro de Jquery en Foros del Web. Hola, tengo un menú horizontal hecho con listas li. El elemento li tiene una imagen de fondo, y dentro del li tengo los enlaces. @import ...
  #1 (permalink)  
Antiguo 19/07/2010, 11:29
 
Fecha de Ingreso: junio-2010
Mensajes: 51
Antigüedad: 13 años, 10 meses
Puntos: 0
Acceder a imagen de fondo con jquery

Hola, tengo un menú horizontal hecho con listas li. El elemento li tiene una imagen de fondo, y dentro del li tengo los enlaces.

Código HTML:
Ver original
  1. <div id="cuadroMenu">
  2.         <ul>
  3.             <li style="margin-left:16px;">
  4.                 <a href="index.asp">Quién soy</a>
  5.             </li>
  6.             <li>
  7.                 <a href="index.asp">Mis principios</a>
  8.             </li>
  9.             <li>
  10.                 <a href="index.asp">Cómo trabajo</a>
  11.             </li>
  12.             <li>
  13.                 <a href="index.asp">Guía de servicios</a>
  14.             </li>
  15.             <li>
  16.                 <a href="index.asp">Soluciones</a>
  17.             </li>
  18.         </ul>
  19.     </div>

Cuando paso el raton por encima le aplico un efecto mediante jquery

Código Javascript:
Ver original
  1. $('#cuadroMenu li').hover(function() {
  2.                 $(this).fadeTo("slow", 1);
  3.             },
  4.                 function() {
  5.                     $(this).fadeTo("Slow", 0.4)
  6.                 }
  7.             );

El caso es que tambien me desvanece el texto del enlace y tan solo quiero desvanecer la imagen. He probado de muchas maneras y buscado, pero no encuentro como acceder a la imagen de fondo del li.

A ver si alguien me puede ayudar. Gracias anticipadas.
  #2 (permalink)  
Antiguo 19/07/2010, 12:48
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Acceder a imagen de fondo con jquery

fijate con .animate()

http://snook.ca/archives/javascript/...ge-animations/

http://api.jquery.com/animate/
  #3 (permalink)  
Antiguo 20/07/2010, 12:11
 
Fecha de Ingreso: junio-2010
Mensajes: 51
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Acceder a imagen de fondo con jquery

Gracias, mayid. No me valen para lo que busco, pero son muy buenos los links. Me los guardo en favoritos para otra... ;D
  #4 (permalink)  
Antiguo 20/07/2010, 14:11
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Acceder a imagen de fondo con jquery

Y por que no? Con .animate() podes variar la transparencia del fondo.

Quizás lo que te está pasando es que las transparencias son jerarquicas, y por ende el texto toma la transparencia del contenedor. Pero con animate va bien, creo:

http://stackoverflow.com/questions/6...rent-in-jquery

O así?
http://www.mightymeta.co.uk/animatin...hild-elements/
  #5 (permalink)  
Antiguo 21/07/2010, 09:23
 
Fecha de Ingreso: junio-2010
Mensajes: 51
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Acceder a imagen de fondo con jquery

Hola, exactamente eso era lo que pasa, por eso concretamente lo que necesitaba era si había alguna manera de acceder a la propiedad background-image para desvanecer sólo la imagen de fondo sin implicar al texto y que éste quedara siempre con el mismo color, sin desvanecerse. Tanto con fadeTo como con animate modifica la transparencia del li, afectando a todos elementos que contiene.
  #6 (permalink)  
Antiguo 22/07/2010, 15:40
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 15 años, 5 meses
Puntos: 66
Respuesta: Acceder a imagen de fondo con jquery

que paso ya resolviste tu problema?, creo que era mas facil simplemente solo aplicar el fade a el texto del enlace.

Código Javascript:
Ver original
  1. $('#cuadroMenu li a').hover(function() {
  2.                 $(this).fadeTo("slow", 1);
  3.             },
  4.                 function() {
  5.                     $(this).fadeTo("Slow", 0.4)
  6.                 }
  7.             );
  #7 (permalink)  
Antiguo 22/07/2010, 16:42
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Acceder a imagen de fondo con jquery

El no quiere desvanecer el texto.

Proba con sprites. Hacete una imagen original con la misma imagen a .4 de transparencia (lo haces con cualquier programa que soporte png). Luego, con animate, haces la transición entre una imagen y otra, tal como te muestran los tutoriales que te pasé. Eso va a quedar bien.
  #8 (permalink)  
Antiguo 24/07/2010, 06:29
 
Fecha de Ingreso: junio-2010
Mensajes: 51
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Acceder a imagen de fondo con jquery

Hola, gracias por vuestro interés. Como dice mayid, lo único que quiero desvanecer es la imagen, y esto es imprescindible. Haciendo algunas pruebas he descubierto algunas curiosidades de cómo trabaja jquey con css. Por ejemplo, si cambio la propidedad de transparencia del enlace de la manera siguiente

$('#cuadroMenu li a').fadeTo(0,1);

intentando devolver la opacidad del enlace a 1 no funciona, ya que el enlace <a> mantiene la transparencia de 1, no heredándola, sino que todo el li lo aplica sobre sí mismo, funcionando exactamente igual que una capa.

El problema lo he resuelto parcialmente añadiendo una línea en la función, cambiando la propiedad css del color del texto. Para ello utilizo dos colores: uno cuando el ratón está encima y otro color cuando está en reposo. Digo parcialmente porque los dos colores no quedan exactamente iguales cuando se le aplica la transparencia, pero creo que podré conseguirlo facilmente con el ColorZilla, complemento de Firefox, imprescindible, por supuesto ;D

De esta manera si en cualquier momento decido cambiar las transparencias mediante código, no necesitaré retocar con el PhotoShop las imágenes. De todos modos es una muy buena sugerencia.

Muchas gracias por la colaboración. Invito a unas cervecillas (virtuales).

Etiquetas: acceder, fondo
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 16:46.