创建一个可拖动/可调整大小下面的蒙版覆盖

问题描述:

我试图让kineticjs下来,并制定了一个小应用程序,这使得我的图像可拖动和可调整大小。到现在为止还挺好;创建一个可拖动/可调整大小下面的蒙版覆盖

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

我希望能仍调整叠加的背后/阻力而交叠依然完好(与此类似,但kineticjs:http://envyum.nl/pointer/

有没有办法这样做呢?通过从一个重叠的矩形切出一个块或许?并且可以在css3中忽略诸如pointer-events: none之类的叠加吗?

由于提前,

+0

你可以张贴一些你在工作的jsfiddle什么代码?这样,其他人(像我)可以通过添加一些代码来帮助你更多 – SoluableNonagon 2013-03-07 15:59:53

+0

似乎实现“覆盖”的最简单方法是用四个半透明矩形创建一个不侦听任何事件的新图层,以便你可以拖动它后面的图像。 – SoluableNonagon 2013-03-07 16:01:18

我有什么,我说的是在上述意见的样本:​​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); 
+0

http://jsfiddle.net/KwQBB/1/更新 – SoluableNonagon 2013-03-07 16:23:05

+0

我试过矩形的东西。但是因为这是一个100%的宽度和高度的东西,它有时候会让我留下丑陋的白色线条,无法正确纠正。尽管如此;看到你的例子让我想再试一次!感谢帮助我到目前为止! – CaptainCarl 2013-03-08 07:19:31

+0

并尝试完成:http://www.envyum.nl/pointer/ 正如您所看到的那样,如果您拖动,图像将位于叠加层之上。你能检查我的JS,看看你是否能找到一些异常? (因为这是我第一次使用canvas和kinetic)http://www.envyum.nl/pointer/javascript/fertile_imager3.js – CaptainCarl 2013-03-08 07:30:28