Comments (2)
To put a border around image you should follow SVG rules. I'm not sure which way is the best one, but usually I go with a grouping element g and put elements inside the group to achieve required UI. E.g. for image with border I would create a rectangle and then put image above it:
graphics.node(function(node) {
var ui = Viva.Graph.svg('g'),
rect = Viva.Graph.svg('rect')
.attr('stroke-width', 10)
.attr('stroke', 'blue')
.attr('width', node.data.size)
.attr('height', node.data.size),
img = Viva.Graph.svg('image')
.attr('width', node.data.size)
.attr('height', node.data.size)
.link(node.data.url);
ui.append(rect);
ui.append(img);
ui.myCustomSize = node.data.size; // we'll talk about this later
return ui;
});
Moving groups around the screen is a bit harder than plain images though. Groups don't have 'x' and 'y' properties, but can be moved with svg:transform attribute:
graphics.placeNode(function(nodeUI, pos){
var half = nodeUI.myCustomSize/2; // myCustomSize is here!
nodeUI.attr('transform',
'translate(' +
(pos.x - half) + ',' +
(pos.y - half) +
')'); // and not so elegant syntax for transforms
});
As for the size - you can pass arbitrary attribute to the object returned from 'node()' callback. Exactly the same object you'll get as nodeUI in the 'placeNode()' callback. I'm using this fact in the code above to specify custom attribute called 'myCustomSize'.
I also made this fiddle for you to show complete example.
Hope this helps :).
from vivagraphjs.
Perfect!
from vivagraphjs.
Related Issues (20)
- Feedback
- how many nodes can this graph support
- Feedback - WebAssembly
- Cannot render graph HOT 2
- Documentation?
- Bug with links
- Go to the link by clicking on the node. HOT 1
- Adding text label functionality HOT 4
- render images on nodes instead of squares
- ngraph dependencies and other dependencies versions
- Messaging between nodes' position to optimise layout
- Request to be added to the list of examples
- how to make hyperlink <a href > from node
- How to fix nodes coordinates
- when you click on an object it jumps
- Performance is not good!
- change image in webgl graph node
- Extend Options to add Custom Force-Directed Layouts
- Node icon images turn to green when nodes number exceed 15,000.
- Custom nodes get stacked on top of each other HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vivagraphjs.