网站首页 > 基础教程 正文
canvas不仅可以做到渐变的效果,还可以指定线性渐变或圆形渐变
1 线性渐变
首先必须先使用createLinearGradient方法创建Linear Gradient对象,之后再用addColorStop方法添加渐变色,并指定给fillStyle或strokeStyle属性使用。
声明Linear Gradient对象
context.createLinearGradient(xS,yS,xE,yE);
(xS,yS)是渐变起点的坐标,(xE,yE)是渐变终点的坐标,改变起点与终点坐标就可以调整渐变的方向。
设置渐变颜色
设置渐变颜色的方法是addColorStop()
gradient.addColorStop(stop,color);
参数中的stop用来设置渐变色的位置,其值必须位于0.0-1.0,例如,渐变想要在图形中间变换颜色,那么stop参数值就设置为0.5;
在30%的位置变换颜色,那么stop参数值就设为0.3。参数color用来指定渐变的颜色,如果要绘制多少渐变,就可以依次增加addColorStop()方法。
gradient.addColorStop(0,"red");
gradient.addColorStop(0.5,"green");
gradient.addColorStop(1,"blue");
详细步骤:
//声明Linear Gradient对象
var my_gradient = context.createLinerGradient(0,0,0,170);
//设置渐变色
my_gradient.addColorStop(0,"#ff0000");
my_gradient.addColorStop(0,"#ffe1ff");
//将渐变色指定给fillStyle
context.fillStyle = my_gradient;
实例:
<!DOCTYPE html>
<html>
<head>
<meta charset=" ">
<title>ch10_09</title>
<script type="text/javascript">
function draw() {
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
// 建立渐变
var lingrad = ctx.createLinearGradient(0,0,150,150);
lingrad.addColorStop(0, "#FF0000");
lingrad.addColorStop(0.5, "#00FF00");
lingrad.addColorStop(1, "#0000FF");
// 分配渐变给填充和边线样式
ctx.fillStyle = lingrad;
ctx.fillRect(10,10,130,130);
}
</script>
<!--style标记内是CSS语法-->
<style type="text/css">
canvas { border: 1px solid black; } //将框线设为1px
</style>
</head>
<body>
<input type="button" value=" 渐变 " onclick="draw();">
<p>
<canvas id="myCanvas" width="150" height="150"></canvas>
</body>
</html>
猜你喜欢
- 2024-10-12 web前端:canvas动画彩色气泡,类直播间点赞效果实现
- 2024-10-12 HTML使用Canvas绘制动画时钟 canvas绘制钟表
- 2024-10-12 三个绘图工具类详解 常用的绘图工具有哪些,分别有什么用
- 2024-10-12 如何用不到 2KB 的 JavaScript 代码写一个 3D 赛车游戏?
- 2024-10-12 VUE动态生成二维码并利用canvas合成海报图
- 2024-10-12 JavaScript+Canvas实现自定义画板
- 2024-10-12 JavaScript 中的画布 js实现画板
- 2024-10-12 canvas绘制饼图的方法介绍(代码) canvas画饼状图百分比
- 2024-10-12 H5表白特效——Canvas实现粒子涂鸦效果
- 2024-10-12 h5-自定义生成海报(头条初吻,轻虐)
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)