Is there a way to change the mouse cursor in vis.js when it's over a network node? I'm looking to treat them as links to the object the node represents and have been asked that the cursor change to the "finger" icon to indicate it can be clicked.
4 Answers 4
For that purpose, first we attach hoverNode event of network that fires when we hover on any node of network.
network.on("hoverNode", function (params) {
network.canvas.body.container.style.cursor = 'pointer'
});
Then we bind blurNode event of network that fires when we bring house away (blur) from node. If we don't attach this event, you will see pointer on all over your network.
network.on("blurNode", function (params) {
network.canvas.body.container.style.cursor = 'default'
});
you can see documentation for further details.
3 Comments
hoverNode and blurNode events get fired if the option interaction:{hover:true} is enabled.hoverNode event was not fired off when transitioning from an edge to a node: stackoverflow.com/q/55748023/4572002 This seems to have been fixed in >v5.0Additionally, the hover flag must be set for interactions before the hoverNode event will fire:
var options = {interaction:{hover:true}};
Comments
for me its work with 3 steps
1.Fired if the option interaction:{hover:true} is enabled and the mouse hovers over a node.
var options = {
physics: {
enabled: false
},
interaction:
{ hover:
true
}};
2.hoverNode Function
network.on("hoverNode", function (params) {
network.canvas.body.container.style.cursor = 'pointer';
});
3.blurNode Function
network.on("blurNode", function (params) {
network.canvas.body.container.style.cursor = 'default';
});
Comments
Setting network.canvas.body.container.style.cursor = 'pointer' in a hoverNode callback and setting it back to default in a blurNode handler did the trick.