Raphael 似乎不支持图案,但它确实支持线性渐变作为填充属性的值:
渐变
“‹angle›-‹colour›[-‹colour›[:‹offset›]]*-‹colour›”,例如:
“90-#fff-#000” – 从白色到黑色的 90° 渐变或
“0-#fff-#f00:20-#000” – 从白色到红色(20% 时)到 0° 的渐变
黑色。
因此,使用 Raphael 文档中描述的线性渐变格式,我们可以创建条纹渐变。创建一个为您生成条纹渐变字符串的函数可能很有意义。
function gradientString(color1, color2, step) {
var gradient = '0-' + color1,
stripe = false,
i;
for (i = 0; i < 100; i += step) {
if (stripe) {
gradient += '-' + color1 + ':' + i + '-' + color2 + ':' + i;
} else {
gradient += '-' + color2 + ':' + i + '-' + color1 + ':' + i;
}
stripe = !stripe;
}
return gradient;
}
var paper = Raphael(150, 150, 320, 320);
var oval = paper.rect(0, 0, 100, 50, 25);
oval.attr('fill', gradientString('white', 'crimson', 2));
oval.attr('stroke', 'crimson');
见:http://jsfiddle.net/p4Qgw/