Рисование при прокрутке

  alexei 25/02/2022 - 10:06

Здесь вы узнаете, как рисовать при прокручивании при помощи JavaScript и SVG.



Рисование при прокрутке

Используем SVG и JavaScript, чтобы при прокрутке страницы нарисовать треугольник. Обратите внимание, что обязательно следует использовать элемент <path>:


<svg id="mySVG">
  <path fill="none" stroke="red" stroke-width="3" id="triangle" d="M150 0 L75 200 L225 200 Z"/>
</svg>

<script>
// Получаем id и длину элемента <path>
var triangle = document.getElementById("triangle");
var length = triangle.getTotalLength();

// Стартовая позиция для рисования
triangle.style.strokeDasharray = length;

// Скрываем треугольник. Удалите эту строку, чтобы треугольник отображался до прокрутки
triangle.style.strokeDashoffset = length;

// Получаем процент прокрутки (при помощи кросс браузерных свойств),
// и сдвигаем на процент от прокрутки
window.addEventListener("scroll", myFunction);

function myFunction() {
  var scrollpercent = (document.body.scrollTop + document.documentElement.scrollTop) / (document.documentElement.scrollHeight - document.documentElement.clientHeight);

  var draw = length * scrollpercent;

  // Откатываем нарисованное (при прокрутке вверх)
  triangle.style.strokeDashoffset = length - draw;
}
</script>