--- title: CanvasRenderingContext2D.lineDashOffset slug: Web/API/CanvasRenderingContext2D/lineDashOffset tags: - API - Canvas - CanvasRenderingContext2D - JavaScript - Property - Reference translation_of: Web/API/CanvasRenderingContext2D/lineDashOffset ---
Свойство CanvasRenderingContext2D.lineDashOffset
в Canvas 2D API устанавливает смещение штрихов, или «фаза».
Примечание: Линии нарисованы вызовом метода {{domxref("CanvasRenderingContext2D.stroke()", "stroke()")}}.
ctx.lineDashOffset = value;
value
Этот пример рисует две пунктирные линии. Первая не имеет смещения. Вторая имеет смещение 4.
<canvas id="canvas"></canvas>
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();
Линия со смещением будет нарисована красным цветом.
{{ EmbedLiveSample('Смещение_штрихов', '', '', '', 'Web/API/CanvasRenderingContext2D/lineDashOffset') }}
Эффект марширующих муравьев - это техника анимации, часто встречающаяся в инструментах выбора программ компьютерной графики. Это помогает пользователю отличить границу выделения от фона изображения, анимируя границу..
<canvas id="canvas"></canvas>
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();
{{ EmbedLiveSample('Эффект_марширующих_муравьев', '', '', '', 'Web/API/CanvasRenderingContext2D/lineDashOffset') }}
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('HTML WHATWG', "scripting.html#dom-context-2d-linedashoffset", "CanvasRenderingContext2D.lineDashOffset")}} | {{Spec2('HTML WHATWG')}} |
{{Compat("api.CanvasRenderingContext2D.lineDashOffset")}}
mozDashOffset
свойство будет объявлено устаревшим и будет удалено в будущем, смотрите {{bug(931643)}}. Вместо него используйте lineDashOffset
.webkitLineDashOffset
. Вместо него используйте lineDashOffset
.