【问题标题】:How to call IE CSS gradient property --> Filter from Jquery如何调用 IE CSS 渐变属性 --> 来自 Jquery 的过滤器
【发布时间】:2010-12-10 22:13:57
【问题描述】:

我一直在尝试从 jquery 为 IE 调用过滤 css 方法,但我不能这样做吗?

我用什么?

    $('.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!我试过 -ms-filter 什么都没有发生

【问题讨论】:

  • 当你通过.gtob:hover {filter: etc...}应用css时是否工作
  • @Jossiah 不,伙计,它没有悬停?但在 css 中进行过滤无需悬停即可。

标签: jquery internet-explorer gradient


【解决方案1】:

如果您将这些样式移到样式表中的类中,我建议您的代码会更简洁,然后在鼠标悬停时执行 .addClass().removeClass()

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

最后,您可能需要查看CSS3Pie,这是一个针对所有 IE 版本的 hack,允许它们以稍微符合标准的方式支持 CSS 渐变和边框半径。

【讨论】:

  • 嘿,感谢css3pie,我试试看。我的目标是 IE6+
  • 我同意,如果可能,您应该将样式与 javascript 分开,但有时 MS 过滤器和使用类似的类不起作用。
【解决方案2】:

我认为梯度必须大写?

  $('.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)");
    });

【讨论】:

    猜你喜欢
    • 2013-05-17
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多