在下面创建一个带有可拖动/可调整大小的蒙版叠加层

时间:2013-03-07 15:01:37

标签: javascript html html5 html5-canvas kineticjs

我正在努力让kineticjs失效并找出一个小应用程序,这使我的图像可拖动和可调整大小。到目前为止一切顺利;

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

我希望能够在叠加层仍然完整时仍然可以在叠加层后面调整大小/拖动(像这样,但是使用kineticjs:http://envyum.nl/pointer/

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

提前致谢,

1 个答案:

答案 0 :(得分: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);