Как сохранить отображение пунктирной фигуры после завершения анимации, чтобы она не исчезала? Намучалась с анимацией пунктирной линии. Когда страница загружается, линия прорисовывается, но после окончания анимации, она исчезает. Вот мой код https://codepen.io/Sokolovskaya/pen/XWORVVo.
Проблема в вашем коде заключается в том, что после окончания анимации вы устанавливаете `stroke-dasharray` обратно в `0`. Один из способов сохранить отображение пунктирной фигуры после завершения анимации - это изменить значение `stroke-dasharray` на фактическую длину контура вашего path. Вы можете использовать JavaScript для вычисления длины пути и установки `stroke-dasharray` после окончания анимации. Вот как это можно сделать: 1. Добавьте атрибут `id` к вашему элементу `path`: ```html <path id="myPath" d="M49.748..."/> ``` 2. В вашем JavaScript-коде найдите длину пути и установите `stroke-dasharray` с учетом этой длины: ```javascript const myPath = document.getElementById('myPath'); const pathLength = myPath.getTotalLength(); myPath.style.strokeDasharray = `${pathLength}px ${pathLength}px`; myPath.style.strokeDashoffset = pathLength; ``` 3. В вашем CSS-коде установите анимацию для `stroke-dashoffset`: ```css .path { stroke-dashoffset: 0; animation: dash 6s linear alternate infinite; } @keyframes dash { to { stroke-dashoffset: -100%; } } ``` Таким образом, после окончания анимации, пунктирная фигура останется видимой.
-webkit-animation-fill-mode и animation-fill-mode обозначают, что анимация заполняет все пространство до и после активного времени анимации в обеих направлениях. stroke-dashoffset: 0; означает, что начальное смещение контура линии равно 0. В примерe: .c-dashed-line__path { animation: c-dashed-line-path 3s ease-in-out; fill: none; stroke: #fff; stroke-dasharray: 241; /* это полная длина линии */ stroke-dashoffset: 0; /* это полная длина линии */ stroke-width: 2; } @keyframes c-dashed-line-path { 0% { stroke-dashoffset: 241; /* смещение контура линии равно полной длине */ } 100% { stroke-dashoffset: 0; /* смещение контура линии равно нулю */ } }