2010-12-10 83 views
1

我一直在试图从IE浏览器的jQuery调用过滤器的CSS方法,但我不能这样做?如何调用IE浏览器的CSS渐变属性 - >从Jquery过滤

我使用什么?

$('.gtob').mouseover(function(){ 
     $(this).css("background-image","-moz-linear-gradient(100% 100% 90deg, #373737, #000000)"); 
     $(this).css("background-image","-webkit-gradient(linear, 0% 0%, 0% 100%, from(#373737), to(#000000))"); 
     $(this).css("filter","progid:DXImageTransform.Microsoft.gradient(startColorstr='#373737', endColorstr='#000000',GradientType=0)"); 
    }); 

前两行的伟大工程Firefox,Safari和Chrome,但IE的声明没有给出回应:(

所以,任何人都知道如何做到这一点

,P:?!S I试图-MS-过滤器没有反应

+0

是否CSS工作:悬停{过滤:等等...}' – 2010-12-10 22:24:11

+0

@Jossiah没有,人it's doesn't与悬停?但在CSS中过滤没有悬停的作品。 – 2010-12-11 09:58:58

回答

1

我建议你的代码将是更清洁的,如果你在你的样式表移到那些样式类,然后做.addClass().removeClass()你的鼠标悬停。

您没有指定使用哪个版本的IE,但是对于它的值,filter适用于IE6和IE7,但IE8需要-ms-filter。后者还要求您转义过滤器字符串中的引号。

最后,您可能希望查看CSS3Pie,这是对所有版本IE的破解,允许它们以更符合标准的方式支持CSS渐变和border-radius。

+0

嘿,谢谢css3pie,我试试看。我的目标是IE6 + – 2010-12-11 09:59:29

+0

我同意,如果可能的话,你应该从你的JavaScript中分离出样式,但是有时MS过滤器和类似的类不起作用。 – 2011-03-01 20:42:34

0

我认为渐变必须大写?当你通过`.gtob应用它

$('.gtob').mouseover(function(){ 
     $(this).css("background-image","-moz-linear-gradient(100% 100% 90deg, #373737, #000000)"); 
     $(this).css("background-image","-webkit-gradient(linear, 0% 0%, 0% 100%, from(#373737), to(#000000))"); 
     $(this).css("filter","progid:DXImageTransform.Microsoft.Gradient(startColorstr='#373737', endColorstr='#000000',GradientType=0)"); 
    }); 
+0

没有兄弟,没有工作 – 2010-12-11 09:55:07