一个小问题,我有...Jquery/HTML5?可能是画布?线操纵
试想一个ractangle说,500×250(易位)
在矩形有一行进行的跨整个宽度。
我希望用户能够在矩形内上下拖动这条线。 (可以用jqueryui拖拽很容易完成)
我还希望用户能够点击该行来分割它,然后有两行(这是我被卡住的地方)。还有一种将两条线重新结合在一起的方法。
我真的不知道从哪里开始,对于我应该在哪里寻找的任何想法,或者一个合适的插件允许这样做?
感谢 马特
一个小问题,我有...Jquery/HTML5?可能是画布?线操纵
试想一个ractangle说,500×250(易位)
在矩形有一行进行的跨整个宽度。
我希望用户能够在矩形内上下拖动这条线。 (可以用jqueryui拖拽很容易完成)
我还希望用户能够点击该行来分割它,然后有两行(这是我被卡住的地方)。还有一种将两条线重新结合在一起的方法。
我真的不知道从哪里开始,对于我应该在哪里寻找的任何想法,或者一个合适的插件允许这样做?
感谢 马特
我已经使用HTML5画布和KineticJS框架作出了example。
开始的时候,只有一条水平线,点击一下后,剩下两条线,正好分开用户点击的地方。
下面是代码:
var stage = new Kinetic.Stage({
container: 'container'
});
var layer = new Kinetic.Layer();
var rect = new Kinetic.Rect({
x: 0,
y: 0,
width: 500,
height: 250,
fill: 'red'
});
layer.add(rect);
var line = new Kinetic.Rect({
x: 0,
y: 0,
width: 500,
height: 2,
fill: 'black',
draggable: true,
dragBoundFunc: function (pos) {
return {
x: this.getAbsolutePosition().x,
y: pos.y
};
}
});
layer.add(line);
stage.add(layer);
stage.draw();
line.on('click', function(e){
var y = line.getY();
line.destroy();
var line1 = new Kinetic.Rect({
x: 0,
y: y,
width: e.x,
height: 2,
fill: 'black',
draggable: true,
dragBoundFunc: function (pos) {
return {
x: this.getAbsolutePosition().x,
y: pos.y
};
}
});
var line2 = new Kinetic.Rect({
x: e.x,
y: y,
width: stage.getWidth()-e.x,
height: 2,
fill: 'black',
draggable: true,
dragBoundFunc: function (pos) {
return {
x: this.getAbsolutePosition().x,
y: pos.y
};
}
});
layer.add(line1);
layer.add(line2);
stage.add(layer);
stage.draw();
});
嗨,谢谢你,但它似乎没有显示任何东西?我错过了什么吗? –
它没有显示任何东西或只有线,因为线是在红色矩形的顶部(黑色,有点难以看到)) – irie
好吧,我明白了 - 浏览器问题,这并不是' t似乎在最新版本中工作。谢谢你的帮助。 –
你能描述一下你的意思是什么“拆分为” –
一条线,点击它,你现在有两行。 –
两条水平线跨越宽度,一个在另一个的上方,或者一条水平线在您想要分割的地方断开? –