前几天我问了一个问题,我得到了一个答案,那并没有真正回答它,但它给了我一个主意......下面的代码在那个答案中,我很快就理解了它。除了一部分。我想动画一些放射渐变,那个人做了一个没有做我想做的jQuery插件,但它至少是一些基础。所以,我不明白的部分是一个用命令如何将CSS代码的一部分获取到JavaScript/jQuery?
.match(\d+/g))
他莫名其妙地(如果我右)从梯度得到了RGB,比用它的两种颜色之间的动画。我试图找到谷歌和jQ文件的东西,但我无法找到可启动的东西。
所以我的问题是我怎样才能得到一些CSS的东西,如渐变等部分?我想为jQuery制作一个渐变动画插件,但是我不知道如何只改变css属性的一部分而不改变整个人的属性。
jQuery.fx.step.gradient = function(fx) {
if (fx.state == 0) { //On the start iteration, convert the colors to arrays for calculation.
fx.start = fx.elem.style.background.match(/\d+/g); //Parse original state for numbers. Tougher because radial gradients have more of them
fx.start[0] = parseInt(fx.start[0]);
fx.start[1] = parseInt(fx.start[1]);
fx.start[2] = parseInt(fx.start[2]);
fx.end = fx.end.match(/\d+/g);
fx.end[0] = parseInt(fx.end[0]);
fx.end[1] = parseInt(fx.end[1]);
fx.end[2] = parseInt(fx.end[2]);
}
fx.elem.style.background = "-webkit-linear-gradient(rgb(" + [
Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
].join(",") + ")," + "rgb(0,0,0))";
}
$(this).animate({"gradient": "rgb(0, 255, 0)"});
--David
而你的问题是? – Bojangles
我将它添加到我的问题。 –
如果你可以从'$(“.selector”).css(“ - webkit-radial-gradient”)这样的东西得到结果,你会很幸运,但我有一种感觉,这不会做太多。 – Bojangles