Home » How To » Cara Membuat Scroll Drawing Pada Website

Cara Membuat Scroll Drawing Pada Website

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Di bawah ini kita akan mempelajari cara menggambar saat mengscroll website dengan menggunakan JavaScript dan SVG.

Scroll Drawing

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
  height: 2000px;
  background: #f1f1f1;
}

#mySVG {
  position: fixed;
  top: 15%;
  width: 400px;
  height: 210px;
  margin-left:-50px;
}
</style>
</head>
<body>

<h2>Scroll down this window to draw a triangle.</h2>
<p>Scroll back up to reverse the drawing.</p>

<svg id="mySVG">
  <path fill="none" stroke="red" stroke-width="3" id="triangle" d="M150 0 L75 200 L225 200 Z" />
 Maaf, browser Anda tidak mendukung SVG sebaris.
</svg>

<script>
// Dapatkan id dari elemen <path> dan panjang <path>
var triangle = document.getElementById("triangle");
var length = triangle.getTotalLength();

// Posisi awal gambar
triangle.style.strokeDasharray = length;

// Sembunyikan segitiga dengan mengimbangi tanda hubung. Hapus garis ini untuk menunjukkan segitiga sebelum menggambar scroll
triangle.style.strokeDashoffset = length;

// Temukan persentase scroll pada scrolling (menggunakan properti lintas-browser), dan tanda hubung offset dengan jumlah yang sama seperti persentase gulir
window.addEventListener("scroll", myFunction);

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

  var draw = length * scrollpercent;

  // Membalik gambar (saat mengscroll ke atas)
  triangle.style.strokeDashoffset = length - draw;
}
</script>

</body>
</html>

Gunakan SVG dan JavaScript untuk menggambar segitiga pada layar website yang di scroll – gunakan elemen <path>:

Contoh

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

<script>
// Dapatkan id dari elemen <path> dan panjang <path>
var triangle = document.getElementById("triangle");
var length = triangle.getTotalLength();

// Posisi awal gambar
triangle.style.strokeDasharray = length;

// Sembunyikan segitiga dengan mengimbangi tanda hubung. Hapus garis ini untuk menunjukkan segitiga sebelum menggambar scroll
triangle.style.strokeDashoffset = length;

// Temukan persentase scroll pada scrolling (menggunakan properti lintas-browser), dan tanda hubung offset dengan jumlah yang sama seperti persentase gulir
window.addEventListener("scroll", myFunction);

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

  var draw = length * scrollpercent;

  // Membalik gambar (saat mengscroll ke atas)
  triangle.style.strokeDashoffset = length - draw;
}
</script>

You may also like