0
假設我有一些如下所示的SVG。 #canvas
將應用一些變換:查找SVG元素在視口中是否可見
<svg id="viewport" x="0" y="0" width="100%" height="100%">
<g id="canvas" transform="scale(0.17)">
<image class="imageTile" x="0" y="0" width="256" height="256"/>
<image class="imageTile" x="256" y="0" width="256" height="256"/>
<image class="imageTile" x="0" y="256" width="256" height="256"/>
<image class="imageTile" x="256" y="256" width="256" height="256"/>
</g>
</svg>
#canvas
將可拖動,所以當我拖.imageTile
眼簾,我會把火關下載。
var tiles = Y.all(".imageTile");
for (var i = 0; i < tiles.size(); i++) {
if (the tile is visible - ??) {
// set its xlink:href attribute
}
}
我知道getScreenCTM()
會得到我一個SVGMatrix對象,但我不知道怎麼用它來計算交點。我也知道SVGElement.getIntersectionList()
方法,但它似乎有一些瀏覽器兼容性問題。有沒有更好的辦法?
這也有瀏覽器兼容性問題。 checkIntersection()在Firefox中不受支持(也許是其他)。我認爲元素的轉換標記和bbox一起可以解決問題,但我還沒有嘗試過。 – VectorVortec