2011-05-16 69 views
8

最后,我希望根据不同的事情动态更改渐变,但是如何让jquery应用css3渐变?在jQuery中应用css3渐变

//works 
$(element).css("background-image", "url(http://www.google.co.uk/images/logos/ps_logo2.png)"); 

//doesn't work 
$(element).css("background-image","-webkit-gradient(linear,left bottom,right bottom,color-stop(0.50, rgb(194,231,255)),color-stop(0.50, rgb(255,255,255))"); 

//doesn't work 
$(element).css("background-image","-moz-linear-gradient(left center,rgb(194,231,255) 28%,rgb(255,255,255) 28%"); 

我在想什么?我也试过

$(element).css({background: "-webkit-gradient(linear,left bottom,right bottom,color-stop(0.50, rgb(194,231,255)),color-stop(0.50, rgb(255,255,255)"}); 

这些方法无效吗?

+2

你的CSS不起作用。 – alex 2011-05-16 12:03:29

+0

可能重复? http://stackoverflow.com/questions/5735521/jquery-css-gradient/5735588 – Zirak 2011-05-16 12:04:06

回答

4

另一个选择是使用jQuery addClass方法。这允许您动态地添加和删除类,因此可以动态添加和删除与该类相关的任何格式(包括渐变)。

-3

在jQuery中使用.css()时,我相信你必须使用缩短版本的属性。例如,保证金左将我使用的是复姓语法的JSON格式marginLeft

$(element).css("backgroundImage","-webkit-gradient(linear,left bottom,right bottom,color-stop(0.50, rgb(194,231,255)),color-stop(0.50, rgb(255,255,255))"); 
+0

侧注,网络套件渐变不是背景图像其背景 – motown 2012-07-07 18:27:25

+0

不,它是一个'背景图像' – 2012-10-10 18:12:53

+0

它应该当您使用您提供的语法时,请将其设为'background-image'。当您编写多个属性时,您应该使用camelCase ...就像这样:'$(element).css({backgroundImage:'whatever';})' – 2012-10-10 18:14:33

1

(我一直使用JSON格式要一致)。在Chrome和Firefox中都可以正常工作。

例如:当直接应用于

$("#googleFeed div:even").css({ 
    'background':'-webkit-linear-gradient(top,white,black)',   
}); 
0

这里是一小块例子...

$("p").css({background:'linear-gradient(red,blue,red)'});