CanvasRenderingContext2D.lineDashOffset
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
СвойÑÑво CanvasRenderingContext2D.lineDashOffset в Canvas 2D API ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑмеÑение ÑÑÑиÑ
ов, или «Ñаза».
ÐÑимеÑание:
Ðинии наÑиÑÐ¾Ð²Ð°Ð½Ñ Ð²Ñзовом меÑода stroke().
СинÑакÑиÑ
ctx.lineDashOffset = value;
value-
ЧиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей запÑÑой, опÑеделÑÑÑее велиÑÐ¸Ð½Ñ ÑмеÑÐµÐ½Ð¸Ñ ÑÑÑÐ¸Ñ Ð¾Ð² линии. ÐнаÑением по ÑмолÑÐ°Ð½Ð¸Ñ ÑвлÑеÑÑÑ 0,0.
ÐÑимеÑÑ
>СмеÑение ÑÑÑÐ¸Ñ Ð¾Ð²
ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ ÑиÑÑÐµÑ Ð´Ð²Ðµ пÑнкÑиÑнÑе линии. ÐеÑÐ²Ð°Ñ Ð½Ðµ Ð¸Ð¼ÐµÐµÑ ÑмеÑениÑ. ÐÑоÑÐ°Ñ Ð¸Ð¼ÐµÐµÑ ÑмеÑение 4.
HTML
<canvas id="canvas"></canvas>
JavaScript
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.setLineDash([4, 16]);
// ÐÑнкÑиÑÐ½Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ Ð±ÐµÐ· ÑмеÑениÑ
ctx.beginPath();
ctx.moveTo(0, 50);
ctx.lineTo(300, 50);
ctx.stroke();
// ÐÑнкÑиÑÐ½Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ Ñо ÑмеÑением 4
ctx.beginPath();
ctx.strokeStyle = "red";
ctx.lineDashOffset = 4;
ctx.moveTo(0, 100);
ctx.lineTo(300, 100);
ctx.stroke();
РезÑлÑÑаÑ
ÐÐ¸Ð½Ð¸Ñ Ñо ÑмеÑением бÑÐ´ÐµÑ Ð½Ð°ÑиÑована кÑаÑнÑм ÑвеÑом.
ÐÑÑÐµÐºÑ Ð¼Ð°ÑÑиÑÑÑÑÐ¸Ñ Ð¼ÑÑавÑÑв
ÐÑÑÐµÐºÑ Ð¼Ð°ÑÑиÑÑÑÑÐ¸Ñ Ð¼ÑÑавÑÑв - ÑÑо ÑÐµÑ Ð½Ð¸ÐºÐ° анимаÑии, ÑаÑÑо вÑÑÑеÑаÑÑаÑÑÑ Ð² инÑÑÑÑменÑÐ°Ñ Ð²ÑбоÑа пÑогÑамм компÑÑÑеÑной гÑаÑики. ÐÑо Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¾ÑлиÑиÑÑ Ð³ÑаниÑÑ Ð²ÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ñ Ñона изобÑажениÑ, анимиÑÑÑ Ð³ÑаниÑÑ..
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
let offset = 0;
const draw = () => {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.setLineDash([4, 2]);
ctx.lineDashOffset = -offset;
ctx.strokeRect(10, 10, 100, 100);
};
const march = () => {
offset++;
if (offset > 16) {
offset = 0;
}
draw();
setTimeout(march, 20);
};
march();
СпеÑиÑикаÑии
| Specification |
|---|
| HTML > # dom-context-2d-linedashoffset-dev > |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- ÐнÑеÑÑейÑ, опÑеделÑÑÑий ÑÑо ÑвойÑÑво:
CanvasRenderingContext2D CanvasRenderingContext2D.getLineDash()CanvasRenderingContext2D.setLineDash()- ÐÑименение ÑÑилей и ÑвеÑа