Tôi đang cố gắng sử dụng ViewBox & preserveAspectRatio để tự động điều chỉnh d3.svg.arc tôi khi kích thước cửa sổ đã thay đổi ...Sử dụng ViewBox để thay đổi kích thước svg tùy thuộc vào kích thước cửa sổ
var svg = d3.select("#chart").append("svg")
.append("g")
.attr("viewBox", "0 0 700 500")
.attr("preserveAspectRatio", "xMinYMin meet")
.attr("transform", "translate(" + r + "," + r +") rotate(180) scale(-1, -1)");
Tôi một chút bối rối tại sao nó không hoạt động chút nào - Tôi cũng đã cố gắng thiết lập bảo toàn thành "none" & xóa bất kỳ lề đã đặt nào mà tôi có. nhưng vẫn không có may mắn - bất kỳ trợ giúp hoặc lời khuyên nào sẽ được đánh giá cao.
Dưới đây là một ví dụ: http://jsfiddle.net/xwZjN/53/
Cảm ơn vì điều đó. Nhưng thú vị khi tôi đã áp dụng câu trả lời của bạn vòng cung của tôi dường như đi vào góc - Tôi thay đổi dịch x & y, nhưng nó không hoạt động. Tuy nhiên, nếu tôi làm điều này - http://jsfiddle.net/xwZjN/54/ có vẻ như hoạt động. Có lý do gì không? – Jose
Bởi vì biến 'svg' của bạn thực sự chứa phần tử' g', không phải là SVG. Tuy nhiên, nhìn thấy các ví dụ D3 có vẻ như quy ước là đặt tên cho cấp cơ sở 'g' bằng biến' svg', do đó bạn có quyền (trả lời được cập nhật). – Duopixel
cảm ơn lời giải thích! – Jose