2011-09-08 10 views
7

Cuando utilizo esto en mi página no aparece el gradiente de fondo (sólo estoy preocupado por Safari y Firefox en el momento):¿Cómo configuro la propiedad de la imagen de fondo en un degradado lineal usando el método css de jQuery?

$("#myElement").css({ 
    backgroundImage: "-webkit-gradient(linear, top, bottom, from(black), to(white)", 
    backgroundImage: "-moz-linear-gradient(top, black, white)" 
}); 

He intentado utilizar sólo uno o el otro, así como en el navegadores apropiados, pero no hubo suerte allí.

Puedo simplemente usar un atributo de estilo en línea para el elemento en mi código, pero prefiero no hacerlo de esa manera si hay una manera de hacerlo usando la API de jQuery.

+0

he probado en Firefox versión 6.0.1, y su trabajo para mí – Meenakshi

Respuesta

5

las siguientes obras para mí.

$("#myElement").css({ 
    background: "-webkit-gradient(linear, left top, left bottom, from(#000000), to(#FFFFFF))"}).css({ 
    background: "-moz-linear-gradient(top, black, white)" 
}); 

jsFiddle Demo

Cambios:

  • fondo en lugar de BackgroundImage
  • superior, inferior a: superior izquierda, izquierda abajo
  • falta de cerrar paréntesis, a partir del gradiente webkit
  • modificaciones blanco y negro a # 000000 y # FFFFFF
  • añadió una segunda Css

Probado en Chrome y FF 6

+0

descubrí el "top" -> solución de "arriba a la izquierda" anoche, después de que he publicado mi pregunta. Nunca pensé en la llamada al método double css que funcionó para mí, ¡muchas gracias por eso! De hecho, puedo usar la propiedad backgroundImage y estoy sorprendido de que el fondo funcione para usted, ya que leí en algún lado que jQuery no acepta los estilos "combo" en su método css (tal vez eso cambió en la última versión del biblioteca). También puedo usar blanco y negro en lugar de # 000000 y #ffffff.Ah, y el paréntesis que faltaba era solo un error tipográfico para este ejemplo. :-) ¡¡Gracias de nuevo!! – natlee75

0

He intentado esto en Firefox 6.0.1 y funciona para mí

$(function() { 

$("#myElement").css({ 
    backgroundImage: "-webkit-gradient(linear, top, bottom, from(black), to(white)", 
    backgroundImage: "-moz-linear-gradient(top, black, white)" 
}); 

}); 

HTML

<div id="myElement">testing</div> 
0

Puede haber alguna diferencia entre las versiones más recientes y de mayor edad webkit:

How do I combine a background-image and CSS3 gradient on the same element?

me dieron una pequeña muestra de trabajo con lo siguiente:

$(function(){ 
    $("#myElement").css("background-image", "-webkit-linear-gradient(top, #000000, #ffffff)"); 
    $("#myElement").css("background-image", "-moz-linear-gradient(top, black, white)"); 
}); 

aquí es un violín:

http://jsfiddle.net/Hmmpd/1/

Editar:

impar, utilizando el css "mapa" versión de la obra CSS en Firefox pero no es mi versión de Chrome. Es decir. las siguientes obras para mí en Firefox, pero no cromo:

$(function(){ 
    $("#myElement").css({backgroundImage: "-webkit-linear-gradient(top, #000000,#ffffff)",backgroundImage: "-moz-linear-gradient(top, black, white)"}); 
}); 
+0

Tuve el mismo problema. Después de que probé la llamada al método double css como sugirieron usted y Toukakoukan, todo pareció funcionar bien. Parece como si tal vez la versión de "mapa"/"objeto" de la llamada al método css simplemente reemplaza cada estilo incluido en orden ya que el último en el objeto es siempre el que se usa. – natlee75

Cuestiones relacionadas