如何 - 滚动绘制
了解如何使用 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>
// 获取 <path> 元素的 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>
亲自试一下 »
提示: 在我们的 SVG 教程中了解更多关于 SVG 的信息.