2017-02-17 124 views
-1

我是一個初學者,所以請原諒這個簡單的問題。如何用Javascript翻譯SVG

我有在它的SVG HTML文件:

<html> 

<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
</head> 

<body> 
<img src="example.svg" width="1000" height="700" > 
</body> 

</html> 

我需要:甲Javascript函數,其通過沿100像素y軸平移SVG。具體如何看待這樣的功能?

備註:它必須是Javascript。 SVG也可以被object-tag(而不是img)包含。我需要jquery在其他點,這就是爲什麼它被加載。

非常感謝您的幫助!

編輯:我到目前爲止所做的。 HTML作爲iframe包含在其他項目中。目標是在JS觸發時顯示SVG的「特定部分」。我嘗試下面的代碼在HTML頭:

$(document).ready(function() 
{ 
    window.parent.translation = function() 
{ 
window.scrollTo(0, 100); 
} 
}); 

這樣就解決了我的問題和工作處處完美的罰款 - 除了臺iPad。無論我做了什麼,我都無法滾動或跳到iPad上的錨點。這就是爲什麼我現在想翻譯SVG(而不是滾動頁面)。效果應該是一樣的。

於是,我就一個ID如下添加到SVG:

<img id="example_svg" src="example.svg" width="1000" height="700" > 

然後我更換了符合「scrollTo」通過下面的代碼:

document.getElementById('example_svg').style.setProperty("top", "100px"); 

但是這並未」工作。所以這就是我需要幫助的地方(或者,如果它在ipad上工作,那麼scrollTo會很好 - 但我在互聯網上找到的解決方法都不起作用)。

+0

對不起,收盤標籤只是一個錯字。是的,我寫了幾個JS函數(循環等),但沒有翻譯SVG。我想我會通過getElementbyId找到圖像元素。圖像元素必須位於x = 0,y = 0的位置,然後通過javascript進行轉換。就這樣。 JS將從外部觸發(整個HTML作爲iframe包含在其他項目中)。 – Tall83

+0

好吧,我在上面的貼子中加了一個大膽的「編輯」。有更多的細節和我到目前爲止嘗試過的。 – Tall83

回答

0

如果您想將<img>從正常流程中移出(即將頁面相對於其他所有頁面移動),則需要將其設置爲「定位」元素。你使用position CSS屬性來做到這一點。

您可以使用position: relativeposition: absolute。根據您的情況,您可能需要選擇一個。在下面的簡單演示中,兩者都可以工作。

var thing = document.getElementById("thing"); 
 

 
thing.style.top = "100px";
img { 
 
    position: relative; 
 
}
<img id="thing" src="http://lorempixel.com/g/400/200/" width="400" height="200" >

+0

非常感謝!現在它工作得很好。我不知道我必須讓它成爲一個定位元素。謝謝你的解釋! – Tall83