2013-12-19 3 views
2

dc.js에서 SVG의 크기를 조정하려고합니다. 메인 페이지 자체의 NASDAQ 예제에서. 너비/높이를 변경하면 크기를 조정하는 대신 svg를 자릅니다. 예를 들어 너비와 높이를 반으로 변경하면 svg가 절반으로 줄어들고 절반 만 보여줍니다. 나는 정말로 바보 같은 일을하고 있다는 것을 알고있다.dc.js에서 SVG 크기 조정

좋습니다.

답변

1

viewBox 특성을 사용해야합니다.

viewBox 특성을 사용하면 주어진 그래픽 집합이 특정 컨테이너 요소에 맞게 확장되도록 지정할 수 있습니다. - 당신이 CSS에서 컨테이너의 폭과 높이를 변경하는 경우 http://jsfiddle.net/LPWhE/가 당신이 SVG의 크기를 조정 - 여기 https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/viewBox

은 예입니다.

svg.attr({ 
    "width": "100%", 
    "height": "100%", 
    "viewBox": "0 0 250 250" 
}) 
4

다음은 내가 한 일입니다. 내 HTML 페이지에서 나는 다음과 같은 라인을했다 ". 막대 그래프"내 JS 페이지에서

<div id="resize"></div> 

, 내가 설치라는 막대 차트 그래프 내 CSS 스타일 시트에 내가 넣어

var width = document.getElementById("resize").offsetWidth; 

barChart = dc.barChart("#barChart"); 

barChart.width(width) 
    .height(350) 
    .margins({top: 10, right: 40, bottom: 30, left: 40}) 
    .dimension(rooms) 
    .group(kWOccupiedData) 
    .elasticY(true) 
    .gap(1) 
    .x(d3.scale.ordinal().domain([0, 5])) 
    .xUnits(dc.units.ordinal) 
    .yAxisLabel("kWh") 
    .xAxisLabel("Room") 
    .renderHorizontalGridLines(true) 
    .transitionDuration(700); 

window.onresize = function(event) { 
    var newWidth = document.getElementById("resize").offsetWidth; 

    barChart.width(newWidth/2) 
    .transitionDuration(0); 

    dc.renderAll(); 

    barChart.transitionDuration(750); 
}; 

마지막 :

.resize { 
    width: 100%; 
    height: 350px; 
} 

#barChart { 
    clear: both; 
    width: 100%; 
} 

을 당신이 당신의 창 크기를 조정할 때 이제 차트뿐만 아니라 크기를 조정해야 나는 다음과 같은 순서를했다.

+0

이 목적으로 설계된 viewBox를 사용할 때보 다 복잡하고 느린 것 같습니다. –