编程语言
首页 > 编程语言> > javascript-画布形状缩放

javascript-画布形状缩放

作者:互联网

我正在将画布与konva库一起使用,并且正在尝试缩放canvas元素.
我可以轻松地使用CSS缩小比例,但是问题是我在其中绘制的形状是可单击的.当画布按比例缩小时,元素也是如此,但是其遮罩或可单击区域却没有.这意味着,如果我单击缩小的画布上的形状,则不会发生任何事情,因为单击蒙版的位置与原始位置相同,并且比例相同.

问题是如何缩放画布底座旁边的形状单击蒙版?

var stage = new Konva.Stage({
  container: 'container',
  width: 500,
  height: 500
});
for (var i = 0; i < shapes.length; i++) {
  var s = shapes[i];
  var links = document.getElementsByClassName(s.link);
  var poly = new Konva.Line({
    points: s.points,
    fill: 'red',
    stroke: 'black',
    strokeWidth: 5,
    closed: true,
    opacity: 0
  });

  poly.on('mousedown touchstart', function () {
    var polyfind = stage.find('Line');
    for (var i = 0; i < polyfind.length; i++) {
      polyfind[i].opacity(0);
    }

  }
  layer.add(poly);
}

形状来自json文件

"Shapes": [
  {
    "points": [ 100, 100, 150, 100, 150, 150, 100, 150 ],
    "link": "A",
  }
]

在CSS方面,它的最大宽度是:100%;等等.甚至尝试过CSS Zoom选项,但它的效果与形状单击蒙版上的max-width相同.

解决方法:

不要使用CSS进行缩放.

使用stage.scale()方法设置值.可能您也需要更改舞台的大小.

标签:canvas,konvajs,css,html,javascript
来源: https://codeday.me/bug/20191110/2013342.html