我正在处理一个页面,该页面有几个D3图表,直到用户滚动到页面的该部分时才可见。这些图表有一些基本的动画效果,我希望这些动画只会在图表所在的区域进入视野时才发生。我唯一成功的方法是使用鼠标悬停事件在包含图表的div上触发:
d3.select("#chapter1_2")
.on("mouseover", function() {
svg.selectAll("rect.bar")
.transition()
.duration(1000)
.attr("width", function(d) { return xScale(d.pct); })
});
换句话说,当用户将鼠标移动到#chapter1_2 div上时,条形图会动画显示到所需的长度。显然,使用mouseover事件并不是最可靠的方法,因此我正在寻找其他可能有帮助的方法。
我尝试使用graph-scroll(https://1wheel.github.io/graph-scroll/),但这并不起作用,因为每个图表只有一个过渡,而且该过渡会在章节/部分中的任何div被分类为active时立即发生,这在页面加载时就会立即发生。
感谢您提前的帮助!
scroll
并检查图表偏移与滚动位置? - Derek