要在滚动页面时填充SVG颜色,你可以使用JavaScript来监听滚动事件,并根据滚动的距离来改变SVG元素的填充颜色。以下是一个基本的实现示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Scroll to Fill SVG Color</title>
<style>
body {
height: 2000px; /* 确保页面有足够的滚动空间 */
}
#mySvg {
width: 200px;
height: 200px;
}
</style>
</head>
<body>
<svg id="mySvg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<rect id="myRect" x="10" y="10" width="80" height="80" fill="blue"/>
</svg>
<script src="script.js"></script>
</body>
</html>
document.addEventListener('DOMContentLoaded', function() {
const svgRect = document.getElementById('myRect');
const maxScroll = document.body.scrollHeight - window.innerHeight;
window.addEventListener('scroll', function() {
const scrollPercentage = window.scrollY / maxScroll;
const newColor = `rgb(${scrollPercentage * 255}, 0, ${255 - scrollPercentage * 255})`;
svgRect.setAttribute('fill', newColor);
});
});
<rect>
)。<body>
,以便可以滚动。DOMContentLoaded
事件,确保DOM完全加载后再执行脚本。maxScroll
。scroll
事件,计算当前滚动的百分比。这种技术可以用于创建动态的视觉效果,例如在滚动到某个部分时改变背景颜色或图标颜色,从而增强用户体验。
requestAnimationFrame
来优化滚动事件的处理,避免频繁的重绘和回流。requestAnimationFrame
来优化滚动事件的处理,避免频繁的重绘和回流。通过以上方法,你可以在滚动页面时动态地改变SVG的颜色,从而实现一些有趣的视觉效果。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云