javascript - 创建一个蒙版覆盖层,其下方可拖动/可调整大小

标签 javascript html html5-canvas kineticjs

我正在尝试下载kineticjs并开发了一个小应用程序,它可以使我的图像可拖动和调整大小。到目前为止一切顺利;

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

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

有办法吗?也许可以从重叠的矩形中切出一个 block ?鼠标可以忽略覆盖层,例如 css3 中的 pointer-events: none 吗?

提前致谢,

最佳答案

我有一个我在上面评论中谈论的内容的示例: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);

关于javascript - 创建一个蒙版覆盖层,其下方可拖动/可调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274483/

相关文章:

javascript - 使用 jQuery 设置单选按钮的值

javascript - 将函数传递给 this.props.children

html - 使侧边栏高度为浏览器窗口的 100%

javascript - 使用 d3js 的词云

javascript - window.fetch api 的预检请求失败

html - 如何将 div 放置在 HTML5 canvas 旁边

html - 何时使用 CSS + 符号

javascript - 如何在html canvas中创建动态绘图文本框

php - 在使用 PHP 上传之前调整照片大小

node.js - 如何在Node中生成canvas元素服务器端并将其发送到客户端