簡體   English   中英

從其xml更改svg元素位置

[英]Changing svg element position from its xml

我在網頁的svg圓中間放置了一些SVG圖標。 我對所有圖像都使用了與Snap相同的javascript函數,但只有一個未正確居中...

我嘗試將svg直接放在html中進行測試(請參見http://jsfiddle.net/aop5znab/ ),但是您可以注意到,球放置正確,但人放置正確,應該放在左上方也一樣(例如,在球下...)。

據我所知,SVG可以通過transform屬性或直接在路徑(相對或絕對路徑點)中更改位置。 我的圖標沒有transform屬性,因此我認為它只能是將其定位不同的路徑點。

有人可以告訴我我是否正確嗎?

  • 如果是,我可以在SVG的xml中進行哪些更改以將其設置為左上角(請不進行transform
  • 如果沒有,那是什么問題?

這是我的SVG:

<g style="fill:#808080">
    <g fill="#0ea507">
        <circle cx="75.042" cy="68.168999" r="4.3889999" fill="#0ea507" d="M 79.431,68.168999 C 79.431,70.592976 77.465978,72.557999 75.042,72.557999 72.618022,72.557999 70.653,70.592976 70.653,68.168999 70.653,65.745021 72.618022,63.779999 75.042,63.779999 77.465978,63.779999 79.431,65.745021 79.431,68.168999 z"/>
        <g fill="#0ea507">
            <g fill="#0ea507">
                <g fill="#0ea507">
                    <polyline
                        points="67.165,87.193 70.991,77.023 74.929,77.023"
                        fill="#0ea507" />
                    <path
                        d="M 67.165,89.22 C 66.928,89.22 66.687,89.178 66.451,89.089 65.404,88.695 64.875,87.527 65.269,86.48 L 69.096,76.31 C 69.393,75.521 70.148,74.998 70.992,74.998 H 74.93 C 76.049,74.998 76.956,75.905 76.956,77.024 76.956,78.143 76.049,79.049 74.93,79.049 H 72.393 L 69.06,87.907 C 68.755,88.719 67.984,89.22 67.165,89.22 z"
                        id="path3010"
                        fill="#0ea507" />
                </g>
                <g
                    fill="#0ea507">
                    <polyline
                        points="82.92,87.193 79.094,77.023 75.155,77.023"
                        fill="#0ea507" />
                    <path
                        d="M 82.92,89.22 C 82.101,89.22 81.329,88.719 81.024,87.907 L 77.691,79.049 H 75.154 C 74.035,79.049 73.129,78.142 73.129,77.024 73.129,75.905 74.036,74.998 75.154,74.998 H 79.093 C 79.936,74.998 80.692,75.521 80.989,76.31 L 84.815,86.48 C 85.209,87.527 84.68,88.695 83.633,89.089 83.399,89.177 83.158,89.22 82.92,89.22 z"
                        fill="#0ea507" />
                </g>
            </g>
            <path
                d="M 75.042,75.006 C 75.042,75.006 80.782,74.556 80.219,80.183 79.656,85.81 77.63,103.365 76.617,103.478 75.604,103.591 75.942,103.703 75.042,103.703 74.142,103.703 74.479,103.591 73.467,103.478 72.454,103.365 70.428,85.809 69.865,80.183 69.302,74.557 75.042,75.006 75.042,75.006 z"
                fill="#0ea507" />
            </g>    
        </g>
    </g>

注意:我嘗試過此操作,但沒有任何改變...

我發現的最佳解決方案是使用此線程中回答的inkscape: 刪除SVG文件中的轉換

這是答案中建議的步驟的副本/過去:

刪除Inkscape中的變換

  1. 在Inkscape中打開SVG文件
  2. 轉到Edit > XML Editor
  3. 在圖層中查找transform屬性並將其刪除

如何在不創建其他變換屬性的情況下完全移動所有對象

  1. 使用“ Object > Ungroup組合”取消組合所有分組的元素
  2. 轉到“ Edit > Select All in All Layers
  3. 轉到Object > Transform

然后在“轉換”面板中

  1. 取消選中Relative move然后選中分別Apply to each object separately
  2. 根據需要設置HorizontalVertical值,然后單擊“ Apply

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM