Gradient
上一篇
Pattern
下一篇
材质
Loading...
在 CSS 中,渐变是通过函数创建的,例如线性渐变 linear-gradient:
background: linear-gradient(#e66465, #9198e5);
我们沿用了该语法,因此可以在支持渐变的属性中使用:
rect.style.fill = 'linear-gradient(#e66465, #9198e5)';
其中渐变色列表 <color-stop-list> 形如:radial-gradient(cyan 0%, transparent 20%, salmon 40%),使用 <color> 和 <percentage> 的组合。
在该示例中我们展示了目前支持的渐变效果,包括线性和径向渐变、多个渐变叠加等:
线性渐变用于创建一个表示两种或多种颜色线性渐变的图片。这个教程可以帮助你理解线性渐变方向的含义和计算逻辑。
用法完全可以参考 CSS linear-gradient,但有以下区别:
因此一个从左到右方向,旋转角度为 0 的线性渐变如下,示例:
rect.style.fill = 'linear-gradient(0deg, blue, green 40%, red)';
最后和 CSS 一致,多组渐变可以叠加:
rect.style.fill = `linear-gradient(217deg, rgba(255,0,0,.8), rgba(255,0,0,0) 70.71%),linear-gradient(127deg, rgba(0,255,0,.8), rgba(0,255,0,0) 70.71%),linear-gradient(336deg, rgba(0,0,255,.8), rgba(0,0,255,0) 70.71%)`;
径向渐变由从原点发出的两种或者多种颜色之间的逐步过渡组成。
用法完全可以参考 CSS radial-gradient。
因此一个渐变中心位于图形中心,从红过渡到蓝再到绿的径向渐变如下,示例:
rect.style.fill = 'radial-gradient(circle at center, red, blue, green 100%)';
注意事项:
circle 不支持 ellipsecircle 半径:
'closest-side' 圆心到包围盒最近边的距离'farthest-corner' 默认值。圆心到包围盒最远角的距离'closest-corner' 圆心到包围盒最近角的距离'farthest-side' 圆心到包围盒最远边的距离<length> 指定长度,例如 'radial-gradient(circle 80px at center, red 100%, blue 100%)'下图分别展示了 'closest-side' 'farthest-side' 和 80px 的效果:
radial-gradient(circle at 50px 50px, red, blue, green 100%):
'top' 上方边缘中点'left' 左侧边缘中点'bottom' 下方边缘中点'right' 右侧边缘中点'center' 水平垂直居中'top left' 左上角'left top' 同 'top left''top right' 右上角'bottom left' 左下角'bottom right' 右下角<length> <length> 指定长度,例如 '25% 25%' 或者 '50px 50px'下图分别展示了 '50px 50px','top right' 和 'left' 的效果:
l 表示使用线性渐变,绿色的字体为可变量,由用户自己填写。// example// 使用渐变色描边,渐变角度为 0,渐变的起始点颜色 #ffffff,中点的渐变色为 #7ec2f3,结束的渐变色为 #1890ffstroke: 'l(0) 0:#ffffff 0.5:#7ec2f3 1:#1890ff';
r 表示使用放射状渐变,绿色的字体为可变量,由用户自己填写,开始圆的 x、y、r 值均为相对值(0 至 1 范围)。// example// 使用渐变色填充,渐变起始圆的圆心坐标为被填充物体的包围盒中心点,半径为(包围盒对角线长度 / 2) 的 0.1 倍,渐变的起始点颜色 #ffffff,中点的渐变色为 #7ec2f3,结束的渐变色为 #1890fffill: 'r(0.5, 0.5, 0.1) 0:#ffffff 1:#1890ff';