前幾天我問了一個問題,我得到了一個答案,那並沒有真正回答它,但它給了我一個主意......下面的代碼在那個答案中,我很快就理解了它。除了一部分。我想動畫一些放射漸變,那個人做了一個沒有做我想做的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