2014-12-11 1 views
0

d3.behavior.zoom()에 전달되는 스케일이 무시되는 이유를 알아 내려고 fiddle을 설정했습니다. 눈금을 10으로 설정했지만 유효 눈금은 1입니다. 그런 다음 눈금을 팬하려고하면 눈금이 10 점으로 이동합니다. 눈금을 확대하려고 할 때도 똑같은 일이 발생합니다. 눈금이 10으로 점프 한 다음 추가 눈금이 적용됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 효과적인 초기 스케일 값을 가지려면 어떻게해야합니까?d3.behavior.zoom()에 의해 스케일이 무시되고 있습니다

답변

0

초기 확대/축소를 나타내는 var scale = 10을 초기화하고 .scale(10)을 통해 zoomer에 적용하고 있습니다. 따라서 zoomer은 초기 눈금을 알고 있지만 코드의 아무 것도 d3 선택vis에 초기 눈금을 적용하는 작업을 수행하지 않습니다. 처음으로 눈금이 실제로 적용되면 사용자가 상호 작용하면 해당 눈금이 마지막으로 적용되는 function zoom() {...}을 호출합니다.

//create a group that will hold all the content to be zoomed 
var vis = graph.append("svg:g") 
    .attr("class", "plotting-area") 
    .attr("transform", "scale(" + scale + ")");// <-- THIS 

여기 an updated fiddle

+0

는 명확한 설명 주셔서 감사합니다 : 당신이 vis을 만들 때

초기 스케일을 적용하는 시간/장소이다. – gaitat

관련 문제