leaferjs/leafer-ui

拖曳能够自由支持操作方式,比如右键拖曳

Closed this issue · 14 comments

请问我又想支持左键绘制元素,又要支持整个canvas拖曳,有什么办法吗,可不可以改成支持配置左键或右键长按拖曳呢

支持,需要配置下右键拖拽画布的功能:app.config.move.holdRightKey = true

https://leaferjs.com/ui/reference/config/app/move.html#move-holdrightkey-boolean

如果我开启了右键拖曳,又支持滚动的话如何配置呢,我试了一下type的各个类型,hittable,hitSelf,无论如何配置,滚动时整个画布都会错位
app = new App({
view: leaferViewRef.value,
// type: 'document', // 禁止无限画布
// hittable: true,
editor: {
rotateable: false,
},
move: {
holdRightKey: true,
},
})

不太能理解具体情况,正常应该就是支持滚动的,或者录屏看看你说的错位是什么情况

这个录屏我发不了,怎么说呢,就是向上面一样开启了右键拖曳,那么就支持滚动码,在滚动的时候我会放大缩小画布,这个时候理论上需要以中心处为基点放大缩小,app.tree.x和app.tree.y应该一直保持为0,但是实际上app.tree.x和app.tree.y会变化的

app = new App({
view: leaferViewRef.value,
// type: 'design', // 禁止无限画布
hitSelf: true,
editor: {
rotateable: false,
},
move: {
holdRightKey: true,
},
wheel: { zoomSpeed: 0, preventDefault: true },
})

您可以按照我发的配置测试一下吗,因为录屏我不知道怎么发你呢

wheel: { zoomSpeed: 0, moveSpeed: 0, rotateSpeed: 0, zoomMode: 'mouse', preventDefault: true },

我刚才试了一下,这样配置可以做到我想要的效果,app.tree.x和app.tree.y在滚轮事件中不偏移

等于你是想禁用滚轮滚动画布?

您可以按照我发的配置测试一下吗,因为录屏我不知道怎么发你呢

我试了一下,我看着是正常啊,你是想禁用滚轮滚动画布吗?

是的,因为不禁用会出现偏移

因为我这边的开发要求内部描述文案这些不变化,所以单纯的放大缩小不适用我,所以需要自己写滚轮事件

因为我这边的开发要求内部描述文案这些不变化,所以单纯的放大缩小不适用我,所以需要自己写滚轮事件

了解,下个版本可以增加个配置

好的好的,多谢大佬

已经增加配置:app.config.wheel.disabled