|
|
请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马黑黑 于 2022-3-1 13:26 编辑
在CSS3里,线性和放射状(圆形)渐变分别是 Lineargradient 和 Radialgradient,它们同样应用到HTML5的canvas中,通过两个JS方法:
线性:createLinearGradient()
放射:createRadialGradient()
这里只说说线性渐变的创建与应用。语法:
context.createLinearGradient(x0,y0,x1,y1);
参数解释:
x0 : 渐变开始点的 x 坐标
y0 : 渐变开始点的 y 坐标
x1 : 渐变结束点的 x 坐标
y1 : 渐变结束点的 y 坐标
设画笔句柄为 cst,则按下面的语句就能创建渐变区域并将渐变操作句柄授权给变量 mygrd:
let mygrd = cst.createLinearGradient(0,0,260,0);
这样的渐变参数如何理解?上例,是从着色对象的左边开始横向渐变至260px处,纵向颜色不变,因为结束点y1的值是0。但在此,仅规定了渐变区域,还没有颜色加持,这就需要用到 addColorStop() 方法,此方法规定渐变对象中的颜色和停止位置,语法如下:
addColorStop(stop,color);
stop参数在 0 到 1 之间,支持小数值,可以是 0 和 1,表示渐变中开始与结束之间的位置。渐变至少需要两种颜色,所以我们可以这样给渐变句柄加上多个颜色:
mygrd.addColorStop(0,"red");
mygrd.addColorStop(0.5,"green");
mygrd.addColorStop(1,"olive");
颜色的位置设定很关键,请在看实例时体会。然后,给 cst 画笔授权线条或边框色(strokeStyle)或填充色(fillStyle):
cst.strokeStyle = mygrd; // 边框色
cst.fillStyle = mygrd; // 填充色
最后就是根据需要设置好相关对象属性后画直线、矩形、圆或文本。这里我们试着画一个矩形:
cst.fillRect(10,10,200,50);
完整代码(添加了其它的内容):
<canvas id="grd" width="400" height="280" style="border:1px solid;padding:10px;"></canvas>
<script>
let cs = document.getElementById('grd');
let cst = cs.getContext('2d');
let mygrd = cst.createLinearGradient(0,0,260,0);
mygrd.addColorStop(0,"red");
mygrd.addColorStop(0.5,"green");
mygrd.addColorStop(1,"olive");
cst.fillStyle = mygrd;
cst.strokeStyle = mygrd;
cst.fillRect(10,10,260,100);
//绘制文字
cst.font = "60px 微软雅黑";
cst.fillText("花潮论坛",20,180);
cst.strokeText("花潮论坛",20,260);
</script>
|
评分
-
| 参与人数 2 | 威望 +100 |
金钱 +200 |
经验 +100 |
收起
理由
|
小辣椒
| + 50 |
+ 100 |
+ 50 |
赞一个! |
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|