Ответы пользователя по тегу SVG
  • Какую библиотеку можно использовать для анимации SVG?

    Raphael довольно старый, у Дмитрия Барановского есть новая библиотека: snapsvg.io/about
    Но SVG в img, скорее всего, не анимирует ни одна библиотека, т.к. внутри img на SVG действуют только стили, прописанные внутри тега svg, и его не удастся затаргетить через img:hover.

    Если не секрет, почему именно img? Если включить напрямую как svg, можно обойтись без целой отдельной библиотеки. Можно написать анимацию на ванильном CSS для path в иконке. Например, если <svg class="icon">:
    .icon path {
      stroke-dasharray: 123123;
      stroke-dashoffset: 123123;
      animation: draw forwards;
    }
    
    @keyframes draw {
      to {
        stroke-dashoffset: 0;
      }
    }


    Вместо 123123 можно подобрать длину методом проб и ошибок, а можно измерить и задать через JS:

    const path = Array.from(document.querySelectorAll(".icon path"));
    
    let length = 0;
    
    const ls = path.map(p => {
      length = p.getTotalLength();
      p.style.strokeDasharray = length;
      p.style.strokeDashoffset = length;
      return length;
    });


    Пример (где много лишнего:)) - https://codepen.io/penumbra1/pen/jaQqBb
    Ответ написан
    1 комментарий