CanvasRenderingContext2D:setLineDash() 方法
Canvas 2D API 的 CanvasRenderingContext2D
接口的 setLineDash()
方法设置在描边线条时使用的线段样式。它使用一个值数组来指定线条和间隙的交替长度,这些长度描述了样式。
注意:要恢复使用实线,请将线段列表设置为一个空数组。
语法
js
setLineDash(segments)
参数
返回值
无 (undefined
)。
示例
基本示例
此示例使用 setLineDash()
方法在实线上方绘制一条虚线。
HTML
html
<canvas id="canvas"></canvas>
JavaScript
js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
// Dashed line
ctx.beginPath();
ctx.setLineDash([5, 15]);
ctx.moveTo(0, 50);
ctx.lineTo(300, 50);
ctx.stroke();
// Solid line
ctx.beginPath();
ctx.setLineDash([]);
ctx.moveTo(0, 100);
ctx.lineTo(300, 100);
ctx.stroke();
结果
一些常见样式
此示例说明了各种常见的线段样式。
HTML
html
<canvas id="canvas"></canvas>
JavaScript
下面创建的 drawDashedLine()
函数使绘制多条虚线变得简单。它仅接收一个样式数组作为参数。
js
function drawDashedLine(pattern) {
ctx.beginPath();
ctx.setLineDash(pattern);
ctx.moveTo(0, y);
ctx.lineTo(300, y);
ctx.stroke();
y += 20;
}
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
let y = 15;
drawDashedLine([]);
drawDashedLine([1, 1]);
drawDashedLine([10, 10]);
drawDashedLine([20, 5]);
drawDashedLine([15, 3, 3, 3]);
drawDashedLine([20, 3, 3, 3, 3, 3, 3, 3]);
drawDashedLine([12, 3, 3]); // Equals [12, 3, 3, 12, 3, 3]
结果
规范
规范 |
---|
HTML 标准 # dom-context-2d-setlinedash-dev |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。