1

我正在尝试降低 kineticjs 并开发了一个小应用程序,使我的图像可拖动和调整大小。到目前为止,一切都很好;

但是:我想要一个在中心具有可变高度/宽度块的叠加层,它应该显示下面的图像(具有可拖动/可调整大小的完整)和半透明叠加层。

我希望能够在覆盖仍然完整的情况下仍然在覆盖后面调整大小/拖动(像这样,但使用 kineticjs:http ://envyum.nl/pointer/ )

有没有办法这样做?也许通过从重叠的矩形中切出一个块?并且鼠标可以忽略pointer-events: nonecss3中的can等覆盖吗?

提前致谢,

4

1 回答 1

1

我在上面的评论中有一个我在谈论的样本:http: //jsfiddle.net/KwQBB/

这不需要一个新层,但这样做可能是一个好习惯。

您可以将逻辑定制为您想要的任何东西,尤其是模拟“剪切”

  var stage = new Kinetic.Stage({
    container: 'container',
    width: 578,
    height: 500
  });
  var layer = new Kinetic.Layer();

  var pentagon = new Kinetic.RegularPolygon({
    x: stage.getWidth() / 2,
    y: stage.getHeight() / 2,
    sides: 5,
    radius: 70,
    fill: 'red',
    stroke: 'black',
    strokeWidth: 4,
    draggable: true,
    dragOnTop: false
  });
  var rect1 = new Kinetic.Rect({  // overlay
    x: 0,
    y: 0, 
    width: stage.getWidth(),
    height: 100,
    fill: 'gray',
    opacity: 0.5,
    listening: false     // <------ Extremely important
  });
  var rect2 = new Kinetic.Rect({ // overlay
    x: 0,
    y: stage.getHeight()/2, 
    width: stage.getWidth(),
    height: 100,
    fill: 'gray',
    opacity: 0.5,
    listening: false     // <------ Extremely important
  });

  // add the shape to the layer
  layer.add(pentagon);
  layer.add(rect1);
  layer.add(rect2);   // add more rectangles to complete overlay

  // add the layer to the stage
  stage.add(layer);
于 2013-03-07T16:16:54.160 回答