Tôi đang cố gắng thay đổi khung nhìn phần tử SVG trong JavaScript. Về cơ bản, tôi vẽ một cây tìm kiếm nhị phân và khi nó quá rộng, tôi muốn thay đổi hộp xem để thu nhỏ sao cho cây phù hợp trong cửa sổ. Tôi hiện đang sử dụng:Thao tác hộp xem SVG với JavaScript (không có thư viện)
if(SVGWidth>=1000){
var a = document.getElementById('svgArea');
a.setAttribute("viewbox","0 0 " + SVGWidth + " 300");
}
HTML là:
<svg id="svgArea" xmlns="w3.org/2000/svg"; xmlns:xlink="w3.org/1999/xlink"; width="1000" height="300" viewBox="0 0 1000 300">
Tôi cũng đã cố gắng sử dụng setAttributeNS ('null', ...) nhưng điều đó dường như không làm việc một trong hai. Một điều kỳ lạ tôi nhận thấy là khi tôi cảnh báo (a) nó cho [đối tượng SVGSVGElement] có vẻ lạ. Bất kỳ trợ giúp được đánh giá cao.
Tôi có thể biết tại sao bạn không muốn sử dụng thư viện không? –
Tôi cần phải thêm, SVGWidth có lẽ là một tên biến xấu, chỉ nên là treeWidth. Ngoài ra, html cho SVG là:
Tôi không sử dụng thư viện vì tôi đang tập trung vào việc học JavaScript. Dự án tiếp theo của tôi, tôi sẽ thêm vào các thư viện, nhưng tôi nghĩ tốt nhất là nên bắt đầu với JavaScript gốc. –