1
我有一个滚动事件监听器,当页面击中特定的滚动目标时,触发D3.js转换。动画效果很好,不会滞后,但每个滚动位置都会调用该过渡。这个贵吗?在第一个draw()
之后#mySvgShape
设置为fill-opacity:0.8
。在滚动期间继续调用转换是否是一个问题?在滚动过程中多次调用D3.js转换是否昂贵?
scrollPosition
是滚动页面的百分比(0到1)。
function draw(scrollPosition) {
if (scrollPosition > 0.2 && scrollPosition < 0.4) {
el.select('#mySvgShape')
.transition()
.style("fill-opacity", "0.8");
}else{
el.select('#mySvgShape')
.transition()
.style("fill-opacity", "1e-6");
}
在调用转换之前检查元素的不透明度。 –
好的建议。谢谢,杰拉尔多。 – jm22
不用担心。默认的持续时间是250ms。所以,更好的方法是检查是否有任何主动转换。 –