- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力修改下面的代码,以便在缩放滚动时,图像在图像的中心总是被缩放,而不取决于光标位置(所以图像不会移动,它只是放大/缩小并不重要,你的光标在哪里,整个 Canvas 总是在中心放大。
所以问题是 - 如何始终在中心缩放图像?谢谢!
var width = window.innerWidth;
var height = window.innerHeight;
var stage = new Konva.Stage({
container: 'container',
width: width,
height: height,
});
var layer = new Konva.Layer();
stage.add(layer);
var circle = new Konva.Circle({
x: stage.width() / 2,
y: stage.height() / 2,
radius: 50,
fill: 'green',
});
layer.add(circle);
layer.draw();
var scaleBy = 1.01;
stage.on('wheel', (e) => {
e.evt.preventDefault();
var oldScale = stage.scaleX();
var pointer = stage.getPointerPosition();
var mousePointTo = {
x: (pointer.x - stage.x()) / oldScale,
y: (pointer.y - stage.y()) / oldScale,
};
var newScale =
e.evt.deltaY > 0 ? oldScale * scaleBy : oldScale / scaleBy;
stage.scale({
x: newScale,
y: newScale
});
var newPos = {
x: pointer.x - mousePointTo.x * newScale,
y: pointer.y - mousePointTo.y * newScale,
};
stage.position(newPos);
stage.batchDraw();
});
<script src="https://unpkg.com/konva@7.0.3/konva.min.js"></script>
<div id="container"></div>
最佳答案
var width = window.innerWidth;
var height = window.innerHeight;
var stage = new Konva.Stage({
container: 'container',
width: width,
height: height,
});
var layer = new Konva.Layer();
stage.add(layer);
var circle = new Konva.Circle({
x: stage.width() / 2,
y: stage.height() / 2,
radius: 50,
fill: 'green',
});
layer.add(circle);
layer.draw();
var scaleBy = 1.01;
stage.on('wheel', (e) => {
e.evt.preventDefault();
var oldScale = stage.scaleX();
var center = {
x: stage.width() / 2,
y: stage.height() / 2,
};
var relatedTo = {
x: (center.x - stage.x()) / oldScale,
y: (center.y - stage.y()) / oldScale,
};
var newScale =
e.evt.deltaY > 0 ? oldScale * scaleBy : oldScale / scaleBy;
stage.scale({
x: newScale,
y: newScale
});
var newPos = {
x: center.x - relatedTo.x * newScale,
y: center.y - relatedTo.y * newScale,
};
stage.position(newPos);
stage.batchDraw();
});
<script src="https://unpkg.com/konva@7.0.3/konva.min.js"></script>
<div id="container"></div>
关于javascript - KonvaJS - 始终在 Canvas 中心缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62941852/
我目前正在关注 this guide在舞台上选择形状并将它们放入 Transformer 中。如果可能,我想拖动整个 Transformer 及其所有内容,而不触及内部的任何形状。 例如,我有两条相距
我目前正在尝试选择多个对象(特别是线条)并将它们添加到 组/变压器通过画一个盒子。为此,我遵循了这个非常有帮助的 stackoverflow question . 实现后,我对结果并不满意,因为即使我
我正在使用 KonvaJS 创建一个简单的图像编辑器。作为图像调整大小函数的基础,我使用了 Konva 示例 ( Knonva JS Image Resize ) 中的代码。但现在我正在努力实现裁剪功
我关注了the guide on making snapping rulers ,但我有额外的功能。问题是拖动阶段后,规则出现在错误的位置。 我尝试过寻找,但找不到任何可用于例如类似于偏移量的东西。这
我想要实现的是在自定义形状本身周围显示变压器。我直接从 API 文档中获取代码来创建自定义形状并添加变压器。转换器对于矩形、圆形等效果很好,但对于自定义形状,它似乎无法正确显示。 以下是演示应用程序的
我关注了the guide on making snapping rulers ,但我有额外的功能。问题是拖动阶段后,规则出现在错误的位置。 我尝试过寻找,但找不到任何可用于例如类似于偏移量的东西。这
是否有示例或方法可以在 konva Canvas 上围绕多个对象绘制一个框,并通过这样做来选择该框内的对象,并在它们周围使用某种指示器? 最佳答案 这是一个工作片段。如果用户选择向北或向东拖动,则使用
我想在我的 Canvas 上显示圆形裁剪图像,我正在使用 konvajs。 有什么办法可以在 konva 本身中做到这一点,或者 JS/CSS 有什么解决方法吗? 这是我用于加载图像的代码。 var
我有 2 个组,每组内都有圆形或矩形。我需要在单击时突出显示该组,并带有边框,以便用户知道哪个组处于事件状态。 最佳答案 有很多方法可以做到这一点。例如: group.on('click', () =
抱歉语法不好- 我对如何使用按钮触发器添加形状有疑问。但不起作用 这是我的代码:HTML Button Text 这是我的 js : function addRectangle(lay
因此,我正在使用 KonvaJS 和 KonvaReact 构建一个 UML 绘图工具,为此我需要将形状与线条连接起来。我在连接对象的网站上看到了教程https://konvajs.org/docs/
我正在使用 konvajs,需要一些帮助! 假设我需要一个可在复杂形状内拖动的图像。 我想知道是否可以使用 Konva.Group 而不是 ClipFunc 来使用 mask ,或者将 mask 图像
分离后如何保持组中形状的位置、旋转和缩放属性? 如果在用户移动或调整大小后分离组中的每个形状,旋转包裹在 Transformer 下的组,形状看起来会丢失更改的属性。 我尝试按照以下来源进行操作。
var group = new Konva.Group(); group.customProp = ['a', 'b', 'c']; group.toJSON(); 结果: { attrs:
我正在尝试使用 Konva.Rect 作为图像过滤器的叠加层。当使用具有透明色标的径向渐变时,在 IOS 模拟器上它工作完美但在设备上它无法识别透明并用纯色填充。 我尝试使用 transparent
我正在使用 KonvaJS 将矩形拖放到预定义的槽中。有些插槽需要旋转 90 度。我在垂直旋转的插槽周围有一个点击框,因此当用户将矩形拖到该区域时,它会自动旋转 90 度(以匹配方向)。当它旋转时,它
我正在使用 KonvaJS在我的项目中。我需要这样的箭头: 箭头将位于两个形状之间。形状是可拖动的。箭头线的长度应随着用户拖动形状而增加或减少。作为解决方法,我在此 plunkr 中使用了 Konva
我有一个简单的 KonvaJS 图像缩放/平移示例,现在我在单击鼠标时添加 anchor ,但问题是当缩放舞台以进行缩放时, anchor 也会变大。我想在舞台缩放时防止 anchor 缩放。 理想情
我在缩放 Konva.Image 时遇到了一些挑战。我想从它的中心点缩放图像。虽然我可以从中心缩放它,但我不确定这样做是否正确。目前它是从它的 top-left Angular 开始缩放的。为了从中心
下面是 Konvas.js (v 2.4) 中的基本生长效果,从图像的左上角开始 (https://codepen.io/simedia/pen/mzrvJq) var width = window.
我是一名优秀的程序员,十分优秀!