2009-12-31 65 views
0

我正在用包含CSS3发光的Scriptaculous编写自定义高光动画。我得到了箱形阴影样式,需要将其分割为rgba alpha值,然后改变该值以使阴影消失。一个CSS字符串 - 选择第三个逗号的所有东西

$('fresh').style.MozBoxShadow 

将返回

0 0 20px rgba(163, 238, 71, 1.0) 

1.0是alpha值。我需要拆分它,这样我可以设置:

$('fresh').style.MozBoxShadow = everythingBeforeAlphaValue + anAlphaValueIVaryWithJS + ')'; 

所有数字可以是任何数量的长数字,所以我不能使用substring(这就是我所知道的:))。你能帮我吗?

回答

2
var mozBoxShadow = $('fresh').style.MozBoxShadow; 
var everythingBeforeAlphaValue = /.*?rgba\((?:\d*,\s*){3}/.exec(mozBoxShadow)[0]; 
1

这会更好,更清洁地完成编程,而不需要解析字符串。

如果我理解正确的logic,你应该能够通过

$('fresh').style.MozBoxShadowColor 

,要达到直接的颜色会为你节省它的一个组成部分。

我也很确定可以以编程方式访问颜色的“alpha”组件,但我不知道如何。

+0

你会这样想,但它回来未定义。我想这就是为什么他们仍然在供应商特定的前缀下。 – 2009-12-31 02:31:52

+0

啊废话。好吧。当我Google时,唯一出现的是什么?这个答案。谁在S​​O的老板在谷歌睡觉? :) – 2009-12-31 02:49:29

2

嗯,你仍然可以使用substring,因为你可以知道lastIndexOf(','),例如:

var str = "0 0 20px rgba(163, 238, 71, 1.0)"; 

var everythingBeforeAlphaValue = str.substring(0, str.lastIndexOf(',') + 1); 
// "0 0 20px rgba(163, 238, 71," 
// ... 
相关问题