2014-10-23 2 views
0

나는 아마도 상대적으로 간단한 질문을 가지고 있습니다.d3.js 네트워크 다이어그램 확대

여기 내 간단한 다이어그램 enter link description here

내가 여기 enter link description here을 통해 VII 동작을 사용하여,과 기능 확대 및 축소 구현 싶어요. 그러나 나는 그것을 작동시키지 못한다. 아마도 당신은 그 문제를 발견 할 것이다.

시간 내 주셔서 감사합니다.

기능의 전체 줌이 할당 및 기능을 처리 할 것으로 보인다 : 당신이 줌 시도 코드는 캔버스에 사용되는

svg = d3.select("body").append("svg").attr("width", width).attr("height", height) 
.call(d3.behavior.zoom().x(x).y(y).scaleExtent([1, 8]).on("zoom", zoom)); 

function zoom() { 
svg.clearRect(0, 0, width, height); 
} 
+1

이 [바이올린 (http://jsfiddle.net/yeQS2/141/) – Gilsha

+0

마법을 참조한다. 고마워요. –

답변

2

. svg 확대/축소를 위해 transform 속성을 사용할 수 있습니다. 전체 그래프를 (그룹) 요소에 넣고 transform 특성을 요소에 적용 할 수 있습니다. 여기

svg = d3.select("body") 
     .append("svg") 
     .attr("width", width) 
     .attr("height", height) 
     .call(d3.behavior.zoom().x(x).y(y).scaleExtent([1, 8]).on("zoom", zoom)) 
     .append("g"); 

function zoom() { 
    svg.attr("transform","translate("+ d3.event.translate+") scale("+d3.event.scale+")"); 
} 

fiddle

+0

어떻게 대립 할 수 있습니까? - 축소하고 확대 할 수 있습니까? 귀하의 피들에있는 Couse는 처음보기로만 축소 할 수 있지만 더 이상은 볼 수 없습니다 –

+0

코드에서이 코드 'd3.behavior.zoom()에 의해 줌 레벨을 최소 눈금 1 및 최대 눈금 8로 제한했습니다. scaleExtent ([1, 8]) '. 'scaleExtent'를 제거하면 무한 범위로 확대/축소 할 수 있습니다. – Gilsha

+0

반죽. 그 속성을 .. 내 잘못을 용서하지만 우리가 '확대'할 때처럼 '축소'할 수있는 캡을 넣을 수 있습니까? –