[英]How to pan and zoom to fit an element with SvgPanZoom
我正在使用 svg-pan-zoom 庫,我需要平移/縮放視圖以適合特定元素。 我可以使用 fit 方法,但它適合整個內容,在這種情況下我只需要適合一個特定元素。 另一種選擇是計算所需的平移和縮放並使用自定義控件,但如何讓元素的平移/縮放適合窗口?
更新
我試圖遵循@bumbu“更簡單”的解決方案。 這是我的第一個想法,但我遇到了縮放點位置的問題。
這是顯示預期行為和計算嘗試的小提琴。
http://jsfiddle.net/mgv5fuyw/2/
這是計算:
var bb=$("#target")[0].getBBox();
var x=bb.x+bb.width/2;
var y=bb.y+bb.height/2;
但不知何故,預期的縮放中心 (225,225) 不是正確的。
我在縮放之前找到了一個解決方案平移,我找不到使用 zoomAtPoint() 方法的正確方法。
http://jsfiddle.net/mgv5fuyw/3/
var bb=$("#target")[0].getBBox();
var vbb=panZoomInstance.getSizes().viewBox;
var x=vbb.width/2-bb.x-bb.width/2;
var y=vbb.height/2-bb.y-bb.height/2;
var rz=panZoomInstance.getSizes().realZoom;
var zoom=vbb.width/bb.width;
panZoomInstance.panBy({x:x*rz,y:y*rz});
panZoomInstance.zoom(zoom);
沒有詳細說明,我會嘗試兩種方法:
更輕松:
更難:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.