2011-09-08 5 views
7

Quando uso questo sulla mia pagina lo sfondo sfumato non appare (io sono preoccupato solo di Safari e Firefox al momento):Come si imposta la proprietà background-image su un gradiente lineare usando il metodo css di jQuery?

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

Ho provato ad utilizzare solo uno o l'altro pure nella browser appropriati, ma senza fortuna lì.

Posso semplicemente usare un attributo di stile inline per l'elemento nel mio codice, ma preferirei non farlo in questo modo se c'è un modo per farlo usando l'API di jQuery.

+0

ho provato in Firefox 6.0.1 versione, e il suo lavoro per me – Meenakshi

risposta

5

i seguenti lavori per me.

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

jsFiddle Demo

Modifiche:

  • sfondo anziché backgroundimage
  • superiore, inferiore a: alto a sinistra, a sinistra sotto
  • mancanti chiusura parentesi dal gradiente webkit
  • ha cambiato in bianco e nero di # 000000 e #FFFFFF
  • aggiunto un secondo css

Testato su Chrome e 6 FF

+0

ho scoperto il "top" -> soluzione "in alto a sinistra" la scorsa notte dopo che ho postato la mia domanda. Non ho mai veramente pensato alla chiamata al metodo double css che ha funzionato per me, quindi grazie mille! Posso effettivamente usare la proprietà backgroundImage, e sono piuttosto sorpreso che lo sfondo possa funzionare per te da quando ho letto da qualche parte che jQuery non accetta gli stili "combo" nel suo metodo css (forse quello modificato nell'ultima versione del biblioteca). Sono anche in grado di utilizzare in bianco e nero anziché # 000000 e #ffffff.Oh, e le parentesi mancanti erano solo un refuso per questo esempio. :-) Grazie ancora!! – natlee75

0

Ho provato questo su Firefox 6.0.1 e funziona per me

$(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

Ci può essere qualche differenza tra le versioni più recenti e meno recenti WebKit:

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

ho avuto un po campione di lavoro con il seguente:

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

ecco un violino:

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

Edit:

Dispari, utilizzando il css "mappa" versione di lavoro css in Firefox, ma non la mia versione di Chrome. Cioè le seguenti opere per me in Firefox, ma non al cromo:

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

Ho avuto lo stesso problema. Dopo aver provato la chiamata al metodo double css come suggerito da te e Toukakoukan, tutto sembrava funzionare correttamente. Sembra che forse la versione "mappa"/"oggetto" della chiamata al metodo css sostituisca semplicemente ogni stile incluso nell'ordine in cui l'ultimo nell'oggetto è sempre quello che viene usato. – natlee75