JointJS:使链接标签在链接本身上移动
JointJS: make link label movable over the link itself
对于链接-在JointJS图中-我试图实现本教程(http://jointjs.com/tutorial/constraint-move-to-circle)来移动链接上的标签,但我不明白在哪里放置ConstraintElementView
.
- 我想让链接的标签在链接上移动。那么我如何将链接定义为可移动标签的"路径"呢?
ConstraintElementView
var constraint = label; // ???
var ConstraintElementView = joint.dia.ElementView.extend({
pointerdown: function(evt, x, y) {
var position = this.model.get('position');
var size = this.model.get('size');
var center = g.rect(position.x, position.y, size.width, size.height).center();
var intersection = constraint.intersectionWithLineFromCenterToPoint(center);
joint.dia.ElementView.prototype.pointerdown.apply(this, [evt, intersection.x, intersection.y]);
},
pointermove: function(evt, x, y) {
var intersection = constraint.intersectionWithLineFromCenterToPoint(g.point(x, y));
joint.dia.ElementView.prototype.pointermove.apply(this, [evt, intersection.x, intersection.y]);
}
});
链接标签
paper.on({
/**
* Doubleclick on link: Add label for link
*/
'cell:pointerdblclick': function(cellView, event, x, y){
if (cellView.model.isLink()) {
cellView.model.label(0, {
position: .5,
attrs: {
rect: { fill: '#eeeeee' },
text: { text: 'text', 'font-size': 12, ref: 'rect' }
}
});
}
}
});
论文var paper = new joint.dia.Paper({
el: $('#canvas'),
width: 801,
height: 496,
model: graph,
gridSize: 10,
elementView: ConstraintElementView,
defaultLink: new joint.dia.Link({
router: { name: 'manhattan' },
connector: { name: 'rounded' },
attrs: {
'.marker-target': { d: 'M 10 0 L 0 5 L 10 10 z', fill: '#6a6c8a', stroke: '#6a6c8a' },
'.connection': { stroke: '#6a6c8a', 'stroke-width': 2 }
}
})
});
- 由于它可以在链接上移动,它应该被固定在曼哈顿式链接的每个部分的中心。但是我没有看到任何机会获得每个片段的中心值。
不需要创建任何路径。只需通过计算相对值来改变标签的位置——当然也可以使用绝对值。
'cell:pointermove': function(event, x, y) {
if (event.model.isLink()) {
var clickPoint = { x: event._dx, y: event._dy },
lengthTotal = event.sourcePoint.manhattanDistance(event.targetPoint),
length = event.sourcePoint.manhattanDistance(clickPoint),
position = round(length / lengthTotal, 2);
event.model.label(0, { position: position });
}
}
允许标签沿着链接移动,可以通过纸上interactive
对象的labelMove
选项来完成:
var paper = new joint.dia.Paper({
// ...
interactive: { labelMove: true }
// ...
})
默认为false
相关文章:
- 我发现了一些只在移动设备上可见的垃圾邮件链接,我可以'找不到包含此垃圾邮件链接的脚本的位置
- 替换移动设备的链接文本
- 链接don'由于Javascript悬停效果,无法在移动设备上工作
- 移动站点重定向与完整的站点链接
- Angular UI&引导程序:点击链接时折叠移动导航栏
- 强制单击空链接以不移动页面焦点
- 简单的移动重定向/深度链接实施
- 如何在点击链接后从用户取消对话框中获得回调以选择移动应用程序
- 试图在CSS中以顶部标题居中链接,但不会移动
- 从页面上点击的链接中删除数据,然后移动到下一页&在CasperJS中重复
- 当屏幕尺寸较小时,可使用Javascript向移动菜单添加链接.不再有效
- 图片链接在移动设备上不起作用
- 使用Jquery上下链接移动Divs
- 单击链接时加载移动鼠标光标 3-4 秒
- 移动设备上的网站超链接不起作用
- JQuery 移动版:页面链接不可靠
- 由于页面宽度更改,指向锚点的链接移动到错误的位置
- 根据包含的链接移动DOM中的元素
- 将标签链接移动到博客的右侧
- jQuery-当链接移动到导航菜单的最左边时,点击更改链接的css