- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用 arbor.js,需要帮助解决几个问题。我能够基于数据库创建一个图形,一个基本图形。现在,我需要做的是,单击节点并获取节点数据并将其显示在侧面。也有一个有向边。所以,问题是
我的 mousedown 功能不工作。要么它完全不起作用,要么如果它起作用,当我单击一个节点时它会自动去拖动,即它被附加到鼠标上并且我无法释放它。我想做的是当我单击我需要在侧面显示节点详细信息的节点时。节点详细信息在另一个页面上,可以作为 json 检索。我的鼠标处理代码如下
initMouseHandling:function(){
// no-nonsense drag and drop (thanks springy.js)
var dragged = null;
// set up a handler object that will initially listen for mousedowns then
// for moves and mouseups while dragging
var handler = {
clicked:function(e){
var pos = $(canvas).offset();
_mouseP = arbor.Point(e.pageX-pos.left, e.pageY-pos.top)
dragged = particleSystem.nearest(_mouseP);
var d = document.getElementById("infoDiv");
if (dragged && dragged.node !== null){
// while we're dragging, don't let physics move the node
dragged.node.fixed = true
}
///document.getElementById('detailBox').innerHTML=selected.node.name;
$(canvas).bind('mousemove', handler.dragged)
$(window).bind('mouseup', handler.dropped)
$(canvas).bind('mousedown', handler.clicked)
return false
},
dragged:function(e){
var pos = $(canvas).offset();
var s = arbor.Point(e.pageX-pos.left, e.pageY-pos.top)
if (dragged && dragged.node !== null){
var p = particleSystem.fromScreen(s)
dragged.node.p = p
}
return false
},
dropped:function(e){
if (dragged===null || dragged.node===undefined) return
if (dragged.node !== null) dragged.node.fixed = false
dragged.node.tempMass = 1000
dragged = null
$(canvas).unbind('mousemove', handler.dragged)
$(window).unbind('mouseup', handler.dropped)
_mouseP = null
return false
}
clicked:function(e){
var pos = $(this).offset();
var p = {x:e.pageX-pos.left, y:e.pageY-pos.top}
selected = nearest = dragged = particleSystem.nearest(p);
var nodeAddress = "http://localhost:7474/db/data/node/" + selected.node.name;
if (selected.node !== null){
// dragged.node.tempMass = 10000
dragged.node.fixed = false;
//$(canvas).unbind('mousemove', handler.dragged)
}
//document.getElementById('detailBox').innerHTML=selected.node.name;
getData(nodeAddress);
//alert(nodeData.self);
return false;
}
}
//My click function
//$(canvas).mousedown(function(e){
//});
},
上面的代码根本不起作用,我也是 jQuery 的新手,因此我无法找出错误,最后点击的函数试图做的是在点击节点时获取从另一个页面获取其详细信息并显示它。这里的功能完全失败了。在我这样尝试之前,
//My click function
$(canvas).mousedown(function(e){
var pos = $(this).offset();
var p = {x:e.pageX-pos.left, y:e.pageY-pos.top}
selected = nearest = dragged = particleSystem.nearest(p);
var nodeAddress = "http://localhost:7474/db/data/node/" + selected.node.name;
if (selected.node !== null){
// dragged.node.tempMass = 10000
dragged.node.fixed = false;
//$(canvas).unbind('mousemove', handler.dragged)
}
//document.getElementById('detailBox').innerHTML=selected.node.name;
getData(nodeAddress);
//alert(nodeData.self);
return false;
});
// start listening
$(canvas).mousedown(handler.clicked);
这在处理程序变量之外,javascript 运行良好,并且在侧面显示了节点号。但我无法查询并获取 json。该图也卡住了。
这个方法可以试试吗?否则我怎么能完成它。很抱歉这个大问题,以及无意中的错误格式,这是我在这里的第一篇文章。
谢谢。
最佳答案
我的处理程序的以下代码适用于我。 YMMV.
我没有使用clicked
函数,而是使用down
映射到dropped
和dragged
。
我还包含了一个 move
变量,它在 dropped
函数中使用,以指示节点是实际被单击还是只是被拖动。
希望这对您有所帮助!
initMouseHandling:function(){
// no-nonsense drag and drop (thanks springy.js)
selected = null;
nearest = null;
var dragged = null;
var move = false;
// set up a handler object that will initially listen for mousedowns then
// for moves and mouseups while dragging
var handler = {
moved:function(e){
var pos = $(canvas).offset();
_mouseP = arbor.Point(e.pageX-pos.left, e.pageY-pos.top);
nearest = particleSystem.nearest(_mouseP);
if(!nearest.node){
return false;
}
selected = (nearest.distance < nearest.node.data.radius) ? nearest : null
// code for node that mouse is hovered on ('selected')
},
down:function(e){
var pos = $(canvas).offset();
_mouseP = arbor.Point(e.pageX-pos.left, e.pageY-pos.top)
nearest = dragged = particleSystem.nearest(_mouseP);
move = false;
if (dragged && dragged.node !== null){
dragged.node.fixed = true
}
$(canvas).bind('mousemove', handler.dragged)
$(window).bind('mouseup', handler.dropped)
return false
},
dragged:function(e){
var old_nearest = nearest && nearest.node._id
var pos = $(canvas).offset();
var s = arbor.Point(e.pageX-pos.left, e.pageY-pos.top)
move = true;
if (!nearest) return
if (dragged !== null && dragged.node !== null){
var p = particleSystem.fromScreen(s)
dragged.node.p = p
}
return false
},
dropped:function(e){
var edit = $("#edit").prop('checked')
if (dragged===null || dragged.node===undefined) return
if (dragged.node !== null) {
if(move===false) {
// code for clicked node (dragged.node)
}
dragged.node.fixed = false
}
dragged.node.tempMass = 1000
dragged = null
selected = null
$(canvas).unbind('mousemove', handler.dragged)
$(window).unbind('mouseup', handler.dropped)
_mouseP = null
return false
}
}
$(canvas).mousedown(handler.down);
$(canvas).mousemove(handler.moved);
}
关于javascript - Arbor.js 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14286257/
以下代码绘制了 egg 的图像在 html5 Canvas 上 function init() { var canvas = document.getElementById("canvas");
我一直在使用 arbor.js,需要帮助解决几个问题。我能够基于数据库创建一个图形,一个基本图形。现在,我需要做的是,单击节点并获取节点数据并将其显示在侧面。也有一个有向边。所以,问题是 我的 mou
我希望使用 arbor.js 作为创建带注释插图的方式。 计划: 固定尺寸 Canvas 将图像绘制到 Canvas 上 - 作为示例,我使用了头部轮廓。 然后混合使用固定节点和 float 节点
我正在使用 arbor js 使用其基于力的算法来创建图表。 我希望能够在总能量低于某个点后保存节点的 x,y 系统坐标,以便我可以在访问图形时重新加载它们,以避免重新加载从头开始处理所有能量。 我在
我正在使用 arbor.js创建图表。 如何为节点创建 onclick 事件,或在某处点击时创建节点链接? Arborjs.org 主页有点击后链接到外部页面的节点,如何复制它,或者让节点在点击时调用
当创建一个带有单个节点的普通 Arbor JS 图时,该节点会到处抖动,并且无法添加更多节点。 另一个用户也在这里报告了这个问题: https://github.com/samizdatco/arbo
我一直致力于调整 arbor.js 以使用图像。 然而,作为一个相对的 JS 菜鸟,我拥有的是完全未优化的。 据我所知,我设置它的方式是为每个图像和每个帧重新创建图像对象,从而导致大量闪烁。 任何人都
我正在使用 arbor.js 和 raphael.js 绘制连接图。在我的本地主机上一切正常,但在heroku上,我收到以下错误: Uncaught Error: SECURITY_ERR: DOM
我对 Javascript 和 Arbor 很陌生,在绘制完整的节点图时遇到了一些困难。我想从展示我的代码开始我的问题: var handler = { clicked:fu
如何在 arbor.js 中为边缘添加标签它是一个图形可视化库。 假设A和B是节点,E是边一种粗略的方法是插入一个“文本节点” T并加入 A-T 和 T-B 但是我不想这样,有没有其他办法? 这是示例
我们正在构建一个rails应用程序,并使用Arbor.js在rails应用程序的网页上显示节点图,它在本地主机上运行良好,但是当我们部署时,我们收到以下错误。 Resource interpreted
我正在使用 arbor.js 构建图表图书馆。 我使用 arbor.js 的 addNode() 和 addEdge() 函数构建图表。现在我想使用 .toJson() 之类的东西来检索构建的图形,它
我需要在 ruby on Rails 项目中添加 arbor.js 以实现图形可视化 我更改了 gemfile,添加了 gem:gem 'arbor-rails', '~> 0.0.4',然后进行
在 Arbor.js 可视化中,有超过 30 个节点链接到父节点,父节点在集群的相对两侧之间振荡 - gif . 可通过 this repo 重现- 检查一下,启动本地服务器 (python -m S
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
我想使用 http://arborjs.org/atlas/插件,但该插件在 IE 中不起作用。任何人都知道任何像 arbor 这样的 jquery 插件,它可以在大多数浏览器中运行并且易于使用。我有
我是一名优秀的程序员,十分优秀!