clipPath를 정의하는 SVG에 경로가 있습니다. 선 (눈금)이 그려지고 경로에 잘립니다.애니메이션 후/도중에 어떻게 클립 경로를 적용 할 수 있습니까?
선 애니메이션을 수행하면 원래의 클리핑이 유지됩니다. 애니메이션의 각 단계에서 이들을 '다시 클리핑'하고 싶습니다.
질문 : 전환하는 동안 클리핑을 수행하는 쉬운 방법이 있습니까?
샘플 문제 코드 : 당신은 SVG를 클릭하면 http://jsfiddle.net/Q29TA/
, 그것은 애니메이션을 보여줍니다.
관련 단편은 :
d3.select("#g-container")
.selectAll("line")
.data(y.ticks(10))
.enter()
.append("line")
.attr("x1", 0).attr("x2", width)
.attr("y1", y).attr("y2", y)
.attr("class", "tick-marks")
.attr("clip-path", "url(#myclip)");
d3.select("svg")
.on("click", function() {
d3.selectAll(".tick-marks")
.transition().duration(2500)
.attr("transform", "translate(0,30)")
})
나는이 일을 새로운 방법 개방,하지만 나는 clipPath 아무것도 할 수 있기 때문에, 라인의 X1과 X2를 재 계산 애니메이션을 하드 코딩 할 수 없다.
애니메이션의 여파 (I 수평 선이 컨테이너의 블루, 대각선을 만나고 싶어) 보여주는샘플 사진 : 클리핑 경로는 무시 보인다 (당신이 발견 한 것처럼) 그래서
@meetamit의 답이 맞지만 이것을 답으로 설정하십시오. 이 솔루션은 조금 더 간단합니다. – cmonkey