antvis / G6

♾ A Graph Visualization Framework in JavaScript.
https://g6.antv.antgroup.com/
MIT License
11.14k stars 1.33k forks source link

通过悬浮动态添加DIV之后,发现div不随画布缩放,有什么办法可以让div随着画布节点的缩放而联动吗 #2111

Closed Xingkong4183 closed 4 years ago

Xingkong4183 commented 4 years ago
mxz96102 commented 4 years ago

建议提供一下在线的案例(codesandbox),或者代码;

因为只有标题,这里如果要做缩放效果的话,div设置css的transform: scale(zoom), zoom从graph的getZoom里面取,在按需求设置一下transform-origin就好了

mxz96102 commented 4 years ago

https://codesandbox.io/s/test-tootip-zoom-zc5yn?file=/index.js

Xingkong4183 commented 4 years ago

因为是点击画布节点通过createElement方法动态添加的悬浮dom,这种情况下能设置div跟随画布缩放吗?如何监听G6的画布缩放事件?
if (name === 'show-tableData') { const node = evt.item; const model = node.getModel(); const { x, y } = node.getModel(); // 获得该节点的位置,对应 pointX/pointY 坐标 const canvasXY = graph.getCanvasByPoint(x, y); var newID = new + ${model.id}; addElementDiv("container", canvasXY, newID);

mxz96102 commented 4 years ago

https://codesandbox.io/s/test-tootip-zoom-zc5yn?file=/index.js 我更新了这个例子,不知道是不是你想要的效果,通过监听graph.on('wheelzoom')实现的

Xingkong4183 commented 4 years ago

transform-origin

https://codesandbox.io/s/clever-dawn-t2fj2?file=/index.js

Xingkong4183 commented 4 years ago

https://codesandbox.io/s/test-tootip-zoom-zc5yn?file=/index.js 我更新了这个例子,不知道是不是你想要的效果,通过监听graph.on('wheelzoom')实现的 https://codesandbox.io/s/clever-dawn-t2fj2?file=/index.js这样做了,发现div框还是没有正确缩放,显示的位置有问题,不知道什么原因

mxz96102 commented 4 years ago

这个是因为你定位不对,在wheel的时候你应该根据node的位置调整top和left,可以根据getClientByPoint(x, y)来做一下