CanvasRenderingContext2D.createLinearGradient() - Web API 接口参考 编辑
CanvasRenderingContext2D
.createLinearGradient()
方法创建一个沿参数坐标指定的直线的渐变。
该方法返回一个线性 CanvasGradient
对象。想要应用这个渐变,需要把这个返回值赋值给 fillStyle
或者 strokeStyle
。
语法
CanvasGradient ctx.createLinearGradient(x0, y0, x1, y1);
createLinearGradient()
方法需要指定四个参数,分别表示渐变线段的开始和结束点。
参数
x0
- 起点的 x 轴坐标。
y0
- 起点的 y 轴坐标。
x1
- 终点的 x 轴坐标。
y1
- 终点的 y 轴坐标。
返回值
CanvasGradient
- 一个根据指定线路初始化的线性
CanvasGradient
对象。
示例
使用线性渐变填充一个矩形
这个例子使用createLinearGradient()
方法初始化了一个线性渐变。在这个线性渐变中添加了三种色彩。最后,这个渐变被赋值给上下文对应的属性,实现了对矩形的填充。
HTML
<canvas id="canvas"></canvas>
JavaScript
var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); // Create a linear gradient // The start gradient point is at x=20, y=0 // The end gradient point is at x=220, y=0 var gradient = ctx.createLinearGradient(20,0, 220,0); // Add three color stops gradient.addColorStop(0, 'green'); gradient.addColorStop(.5, 'cyan'); gradient.addColorStop(1, 'green'); // Set the fill style and draw a rectangle ctx.fillStyle = gradient; ctx.fillRect(20, 20, 200, 100);
结果
Playable code
<canvas id="canvas" width="400" height="200" class="playable-canvas"></canvas>
<div class="playable-buttons">
<input id="edit" type="button" value="编辑" />
<input id="reset" type="button" value="重置" />
</div>
<textarea id="code" class="playable-code">
var gradient = ctx.createLinearGradient(0,0,200,0);
gradient.addColorStop(0,"green");
gradient.addColorStop(1,"white");
ctx.fillStyle = gradient;
ctx.fillRect(10,10,200,100);</textarea>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var textarea = document.getElementById("code");
var reset = document.getElementById("reset");
var edit = document.getElementById("edit");
var code = textarea.value;
function drawCanvas() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
eval(textarea.value);
}
reset.addEventListener("click", function() {
textarea.value = code;
drawCanvas();
});
edit.addEventListener("click", function() {
textarea.focus();
})
textarea.addEventListener("input", drawCanvas);
window.addEventListener("load", drawCanvas);
规范描述
规范 | 状态 | 备注 |
---|---|---|
HTML Living Standard CanvasRenderingContext2D.createLinearGradient | Living Standard |
浏览器兼容性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.Gecko特性说明
- 自 Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)开始,参数指定了极值会抛出
NOT_SUPPORTED_ERR
而不再是之前的SYNTAX_ERR
异常。
参见
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论