svgjs,如何在绘制元素后移动视图区域?
svgjs, how to move the view area after drawing elements?
我有
var draw = SVG().addTo('#draw');
作为我的主要绘图位置,所有 svg 元素都位于其各自超出屏幕尺寸的位置。
现在我想要像 google 地图那样的拖动功能(其中呈现的元素保持在它们的位置,但用户的视图在我们拖动它时移动到不同的部分)。我可以处理鼠标事件等,但我 transform/move 究竟要做什么才能实现这种类型的拖动?
我可以跟踪鼠标移动并遍历所有存在的元素并移动它们。但我假设有一种聪明的方法可以做到这一点。理想情况下,我希望元素保持原样,但 "draw" 变量在我拖动时以某种方式在屏幕上显示其自身的不同部分。
我该怎么办?
这个效果是通过改变外部 svg 元素的 viewbox
属性来实现的。 svg.js 有一个插件可以做到这一点。你可以找到它here。您也可以通过 运行 npm:
简单地安装它
npm install @svgdotjs/svg.panzoom.js
我有
var draw = SVG().addTo('#draw');
作为我的主要绘图位置,所有 svg 元素都位于其各自超出屏幕尺寸的位置。
现在我想要像 google 地图那样的拖动功能(其中呈现的元素保持在它们的位置,但用户的视图在我们拖动它时移动到不同的部分)。我可以处理鼠标事件等,但我 transform/move 究竟要做什么才能实现这种类型的拖动?
我可以跟踪鼠标移动并遍历所有存在的元素并移动它们。但我假设有一种聪明的方法可以做到这一点。理想情况下,我希望元素保持原样,但 "draw" 变量在我拖动时以某种方式在屏幕上显示其自身的不同部分。
我该怎么办?
这个效果是通过改变外部 svg 元素的 viewbox
属性来实现的。 svg.js 有一个插件可以做到这一点。你可以找到它here。您也可以通过 运行 npm:
npm install @svgdotjs/svg.panzoom.js