滚动绘图

创建于 2024-12-03 / 27
字体: [默认] [大] [更大]

了解如何使用 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>
// Get the id of the <path> element and the length of <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>
亲自试一试 »

提示: 在我们的 SVG 教程中了解有关 SVG 的更多信息



0 人点赞过