【问题标题】:CSS3 Jquery Gradients - is there any way to read the values set?CSS3 Jquery Gradients - 有没有办法读取设置的值?
【发布时间】:2012-03-13 15:08:21
【问题描述】:

假设我有以下 CSS:

._gradient {
    background-image: linear-gradient(top, #6AF 16px, #0032C8 24px);
    background-image: -o-linear-gradient(top, #6AF 16px, #0032C8 24px);
    background-image: -moz-linear-gradient(top, #6AF 16px, #0032C8 24px);
    background-image: -webkit-linear-gradient(top, #6AF 16px, #0032C8 24px);
    background-image: -ms-linear-gradient(top, #6AF 16px, #0032C8 24px);
    background-image: -webkit-gradient(linear,left top,left bottom,color-stop(16px, #6AF),color-stop(24px, #0032C8));
}

有没有什么方法simple 用 Ja​​vascript 或 jQuery 来读取渐变位置/方向/颜色的值?

显然我可以使用正则表达式...问题在于“背景图像”值返回不同的值,具体取决于访问该站点的浏览器:jsFiddle example

现在基本上这导致我尝试使用 linear-gradient() 值(旨在进行浏览器检测并使用 jQuery 应用 CSS)但这返回值“无”:jsFiddle example 2

请记住,我的实际目标是使用脚本动态获取这些值,而不是设置它们(尽管我愿意让解决方案要求我这样做)。

编辑澄清 我正在寻找一种方法来读取渐变中的值,即使不支持渐变。使用$.cssHooks 不是答案,因为如果支持该属性,它会返回值“none”,这对以往没有任何好处。

【问题讨论】:

  • 由于示例 2 中的问题而无法工作,就像我说的,我正在尝试获取 colorpositiondirection。如果数据对cssHooks 可用,它也将由$(elem).css('background-image') 返回,但是您无法“获取”不受支持的CSS 值,并且对于不同浏览器支持的不同类型的渐变,必须使用regex 似乎有点极端。
  • 我想如果不使用正则表达式是不可能的,是的,您必须检查该值是否为“无”,跳转到下一个可能的类型..这里可能有一个可行的解决方法:<div class="_gradient" linear-gradient="blah|blah"></div>​ 然后从元素 $('._gradient').html($('._gradient').attr('linear-gradient'));​ 中读取属性,或者更好地为每个值使用属性需要,顶部,rgba 等。希望对您有所帮助!
  • 它必须是 data-linear-gradient="" 才能与 HTML5 兼容,但我也在考虑相同的思路,然后使用 jQuery 应用渐变和 PHP 来生成图像文件,如果不支持渐变...等不及支持普通的linear-gradient(50 年后...)

标签: javascript jquery css linear-gradients


【解决方案1】:

这大致符合您的要求吗? http://jsfiddle.net/2wQed/2/

【讨论】:

  • 很遗憾,没有,如果存在不受支持的值,它会显示背景图像的名称,但理想情况下我需要位置、颜色和方向值。
  • 嗯,好的。我知道你不想那样做,但不幸的是,如果没有正则表达式的值,我看不到更简单的方法......
  • 问题在于,在不支持任何类型的 CSS 渐变的浏览器中,它返回值“无”......我认为解决方案可能是将渐变文件命名为 FFFFFF_10_CCCCCC_40_FF0000_100 但这是一个完整的沉思的噩梦!
  • 虽然不是正确答案,但这是最接近正确答案的人,而这个问题的实际答案是“你做不到”
【解决方案2】:

你可能想看看这个……

http://api.jquery.com/jQuery.cssHooks/

here找到,不确定它是否有效,但也许值得一试

【讨论】:

  • 这已经在 cmets 中提出过,但它对我想要做的事情不起作用。
猜你喜欢
  • 1970-01-01
  • 2016-10-02
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
  • 2021-04-18
  • 2010-09-21
  • 2010-10-24
  • 1970-01-01
相关资源
最近更新 更多