Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธีวาดรูปเมื่อเลื่อนหน้าจอด้วย JavaScript และ SVG

ตัวอย่าง

หากต้องการสร้างเอฟเฟกต์การวาดเส้น SVG ตามการเลื่อนหน้าจอ ให้ใช้ stroke-dasharray และ stroke-dashoffset ร่วมกับ scroll event

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <style>
    body {
      height: 2000px;
      background: #f1f1f1;
    }
    svg {
      position: fixed;
      top: 15%;
      width: 400px;
      height: 210px;
      margin-left: -50px;
    }
  </style>
</head>
<body>
  <h1>ตัวอย่างการวาดเมื่อเลื่อนหน้าจอด้วย JavaScript และ SVG</h1>
  <svg>
    <path fill="none" stroke="purple" stroke-width="5" id="polygon" d="M 150 350 Q 150 50 250 150 Q 250 550 300 150 Q 350 50 400 300"/>
  </svg>
  <script>
    var polygon = document.getElementById("polygon");
    var length = polygon.getTotalLength();
    polygon.style.strokeDasharray = length;
    polygon.style.strokeDashoffset = length;
    window.addEventListener("scroll", drawPoly);
    function drawPoly() {
      var scrollpercent = (document.body.scrollTop + document.documentElement.scrollTop) / (document.documentElement.scrollHeight - document.documentElement.clientHeight);
      var draw = length * scrollpercent;
      polygon.style.strokeDashoffset = length - draw;
    }
  </script>
</body>
</html>

ผลลัพธ์

โค้ดข้างต้นจะสร้างผลลัพธ์ดังนี้:

วิธีวาดรูปเมื่อเลื่อนหน้าจอด้วย JavaScript และ SVG

เมื่อเลื่อนถึงด้านล่างของหน้า:

วิธีวาดรูปเมื่อเลื่อนหน้าจอด้วย JavaScript และ SVG