2010-08-09 5 views
2

J'écris un plugin qui dépend des propriétés d'arrière-plan du dégradé CSS3. Je n'ai pas de problème pour obtenir quelque chose comme cela fonctionne:Définition des propriétés de dégradé CSS3 avec jQuery?


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

Cependant, cela ne fonctionne pas:


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

J'étais sous l'hypothèse que Css() a travaillé avec toute propriété prise en charge par le navigateur donc je suis en train de régler ce problème avec jQuery ou cette propriété n'est pas supportée?

Répondre

4

Je doute le premier exemple fonctionne soit: si vous voulez définir la propriété css, vous devez utiliser deux paramètres, comme $(this).css('background', '-webkit-gradient(linear,left top,left bottom,from(#f4f4f4),to(#FFFFFF))');​​​​​​​

Plus sur le sujet:
http://api.jquery.com/css/

modifier
Vous avez raison, il est possible de définir les propriétés css avec la notation {name:value}, elles ne le disent pas dans le récapitulatif des fonctions (il faut lire plus loin).
Quoi qu'il en soit, voici l'exemple de travail avec deux paramètres (le second à partir de votre poste): http://jsfiddle.net/BX9Wa/

+1

fonctionne également: '$ (this) Css ({ 'background': « -moz-gradient linéaire (en bas du centre , rgb (255,255,255) 0%, rgb (241,250,254) 100%) '}); ' –

+0

Fonctionne également:' $ (this) .css ({' filter ':' progid: DXImageTransform.Microsoft.gradient (startColorstr = # 4cdbff , endColorstr = # FFFFFF) '}) 'AND' $ (this) .css ({' -ms-filter ':' \ "progid: DXImageTransform.Microsoft.gradient (startColorstr = # f4f4f4, endColorstr = # FFFFFF) \" '}) '. LOL. –

+0

C'est assez agaçant. De déconner avec cela, il semble que vous ne pouvez pas mélanger '.css ({'someProp': 'someSetting'})' avec '.css ('someProp', 'someSetting')'. La seule propriété qui ne fonctionne pas avec le premier est le dégradé webkit. Même les dégradés de filtres IE fonctionnent avec cette syntaxe! À moins que je ne remette quelque chose en place, ma seule solution est de chaîner une tonne de '.css ('someProp', 'someSetting')' ensemble ou de ne pas pouvoir utiliser le dégradé webkit. –

Questions connexes