我正在编写一个包含CSS3发光的Scriptaculous自定义高亮动画。我得到了盒子阴影样式,需要将其拆分为rgba alpha值,然后改变该值以使阴影消失。
$('fresh').style.MozBoxShadow
将返回
0 0 20px rgba(163, 238, 71, 1.0)
1.0
是alpha值。我需要拆分它以便我可以设置:
$('fresh').style.MozBoxShadow = everythingBeforeAlphaValue + anAlphaValueIVaryWithJS + ')';
所有数字都可以是任意长度的数字,所以我不能使用substring
(这就是我真正知道的:))。你能帮忙吗?
答案 0 :(得分:2)
var mozBoxShadow = $('fresh').style.MozBoxShadow;
var everythingBeforeAlphaValue = /.*?rgba\((?:\d*,\s*){3}/.exec(mozBoxShadow)[0];
答案 1 :(得分: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,"
// ...
答案 2 :(得分:1)
这将以编程方式更好,更清晰,无需解析字符串。
如果我理解logic权利,您应该能够通过
直接获得颜色$('fresh').style.MozBoxShadowColor
那将为你节省一部分。
我也非常确定可以通过编程方式访问颜色的“alpha”组件,但我不知道如何。