因此,我正在開發一個使用svg的地圖,並且希望能夠在用戶輸入上縮放到我的svg(一個州或國家/地區)的預定義區域。我發現了一個教程,正是這一點以及蓬勃生機,這是在這裏:https://css-tricks.com/interactive-data-visualization-animating-viewbox/ 也是他們codepen是在這裏:https://codepen.io/sdras/pen/512230ed732f9b963ad3e50c8d4dcbb8調整視圖框以包含svg元素
與我自己的SVG複製這個現在我有問題。當我告訴它放大某個區域時,它會放大到另一個區域。我試圖複製他們的代碼的確切結構沒有成功。我開始認爲這個錯誤在我的SVG本身中。
HTML:
<svg id="foo" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1440 776">
然後太多的代碼複製並粘貼在這裏。
SASS:
html
body
svg
width: 100vw
height: 100vh
JQuery的:
var test = document.getElementById("_x32_");
console.log(test);
var s = test.getBBox();
//check the console for the SVGRect object
console.log(s);
//we store the values from the object as our new viewBox string
var newView = "" + s.x + " " + s.y + " " + s.width + " " + s.height;
console.log(newView);
//we then set the new viewBox string as the viewBox attribute on the SVG
var foo = document.getElementById("foo");
console.log(foo);
//foo.setAttribute("viewBox", newView);
的CodePen是在這裏:https://codepen.io/mat148/pen/xqWMXR
我使用Illustrator CS5導出,爲什麼會添加這些轉換?我想我會手動編輯它。 –
如果您對形狀進行分組然後移動它們,矢量編輯器通常只是對該組應用轉換,而不是重新計算形狀的所有座標。 –
啊,很爛。謝謝您的幫助。 –