如何使用 JavaScript 和 SVG 在滚动页面时进行绘制?


若要使用 JavaScript 和 SVG 在滚动页面时进行绘制,代码如下 −

示例

 在线演示

<!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>Scroll Using JavaScript and SVG example</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>

输出

上述代码将生成以下输出 −

滚动到底部 −

更新于: 08-May-2020

466 次浏览

开启你的职业生涯

完成课程,获得认证

立刻开始
广告
© . All rights reserved.