2010-08-09 144 views
2

我在寫一個依賴於CSS3漸變背景屬性的插件。我沒有問題,得到這樣的工作:用jQuery設置CSS3漸變屬性?


$(this).css({ '-webkit-box-shadow': 'inset 2px 2px 5px #DEDEDE' }); 

然而,這無法工作:


$(this).css({ 'background': '-webkit-gradient(linear,left top,left bottom,from(#f4f4f4),to(#FFFFFF))' }); 

我是的.css()由瀏覽器所支持的任何財產工作的假設下所以我要麼設置它與jQuery錯誤或此屬性不受支持?

回答

4

我懷疑的第一個例子作品之一:如果你想設置的CSS屬性,你必須使用兩個參數,如$(this).css('background', '-webkit-gradient(linear,left top,left bottom,from(#f4f4f4),to(#FFFFFF))');​​​​​​​

更多關於這個問題:
http://api.jquery.com/css/

編輯
你是對的,可以用{name:value}表示法來設置css屬性,他們只是不在函數摘要中告訴它(你必須進一步閱讀)。
無論如何,這裏有兩個參數(第二個從你的帖子)的工作示例:http://jsfiddle.net/BX9Wa/

+1

此外,作品:$(this).css({'background':'-moz-linear-gradient(center bottom ,rgb(255,255,255)0%,rgb(241,250,254)100%)'});' – 2010-08-09 22:25:40

+0

也可以:$(this).css({'filter':'progid:DXImageTransform.Microsoft.gradient(startColorstr =#4cdbff ,'endcolorstr =#f4f4f4,endColorstr =#FFFFFF)\「endcolorstr =#FFFFFF)'})'AND' $(this).css({'-ms-filter':'\」progid:DXImageTransform.Microsoft.gradient(startColorstr =#f4f4f4, '})'。大聲笑。 – 2010-08-09 22:31:10

+0

這很煩人。從這個混亂中,似乎你不能將'.css({'someProp':'someSetting'})'與'.css('someProp','someSetting')'混合在一起。唯一不適用於前者的是webkit漸變。即使是IE濾鏡漸變也適用於這種語法!除非我再次搞砸了,否則我唯一的解決方法是將大量'.css('someProp','someSetting')'鏈接在一起,或者不能使用webkit漸變。 – 2010-08-09 22:47:15