CanvasRenderingContext2D: свойство lineDashOffset
Базовая линия Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство CanvasRenderingContext2D.lineDashOffset API Canvas 2D задаёт смещение пунктирной линии, или «фазу».
Примечание: Линии рисуются с помощью метода stroke().
Значение
Число с плавающей точкой, определяющее величину смещения пунктирной линии. Значение по умолчанию — 0.0.
Примеры
Смещение пунктирной линии
В этом примере рисуются две пунктирные линии. Первая не имеет смещения, а вторая имеет смещение 4.
HTML
<canvas id="canvas"></canvas>
JavaScript
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.setLineDash([4, 16]);
// Dashed line with no offset
ctx.beginPath();
ctx.moveTo(0, 50);
ctx.lineTo(300, 50);
ctx.stroke();
// Dashed line with offset of 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;
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.setLineDash([4, 2]);
ctx.lineDashOffset = offset;
ctx.strokeRect(10, 10, 100, 100);
}
function march() {
offset++;
if (offset > 5) {
offset = 0;
}
draw();
setTimeout(march, 20);
}
march();
Спецификации
| Спецификация |
|---|
| HTML # dom-context-2d-linedashoffset-dev |
Совместимость с браузерами
| Рабочий стол | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
lineDashOffset |
23 | 12 | 277 | 15 | 7 | 25 | 277 | 14 | 7 | 1.5 | 4.4 |
См. также
- Интерфейс, определяющий это свойство:
CanvasRenderingContext2D CanvasRenderingContext2D.getLineDash()CanvasRenderingContext2D.setLineDash()- Применение стилей и цветов
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset