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。所以,更好的方法是檢查是否有任何主動轉換。 –