Skip to content

Commit 827f189

Browse files
committed
Merge pull request neo4j-contrib#20 from trengrj/master
Graph zooming with Alt Key
2 parents 02c6200 + ae58ea0 commit 827f189

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<script src="js/asciidoctor.js"></script>
1717
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
1818
<script type="text/javascript" src="js/jquery-ui-1.10.3.custom.min.js"></script>
19-
<script src="http://cdnjs.cloudflare.com/ajax/libs/d3/3.2.2/d3.v3.min.js"></script>
19+
<script src="http://cdnjs.cloudflare.com/ajax/libs/d3/3.4.8/d3.min.js"></script>
2020

2121
<!--MathJAX-->
2222
<script type="text/x-mathjax-config;executed=true">

js/neod3-visualization.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,29 @@ function renderNeod3(id, $container, visualization) {
7070
return styleContents + styleSheet;
7171
}
7272

73+
function applyZoom() {
74+
renderer.select(".nodes").attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
75+
renderer.select(".relationships").attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
76+
}
77+
78+
function zoomStart() {
79+
if (d3.event.sourceEvent.altKey) {
80+
zoomBehavior.on("zoom",applyZoom);
81+
renderer.on("mousedown.zoom", null)
82+
}
83+
else {
84+
zoomBehavior
85+
.on("mousedown.zoom", null)
86+
.on("mousewheel.zoom", null)
87+
.on("mousemove.zoom", null)
88+
.on("DOMMouseScroll.zoom", null)
89+
.on("dblclick.zoom", null)
90+
.on("touchstart.zoom", null)
91+
.on("touchmove.zoom", null)
92+
.on("touchend.zoom", null);
93+
}
94+
}
95+
7396
var links = visualization.links;
7497
var nodes = visualization.nodes;
7598
for (var i = 0; i < links.length; i++) {
@@ -89,7 +112,11 @@ function renderNeod3(id, $container, visualization) {
89112
.style(styleSheet)
90113
.width($container.width()).height($container.height()).on('nodeClicked', dummyFunc).on('relationshipClicked', dummyFunc).on('nodeDblClicked', dummyFunc);
91114
var renderer = d3.select("#" + id).append("svg").data([graphModel]);
115+
var zoomBehavior = d3.behavior.zoom().on("zoomstart", zoomStart).scaleExtent([0.2,8])
116+
92117
renderer.call(graphView);
118+
renderer.call(zoomBehavior);
119+
93120
return function () {
94121
graphView.height($container.height());
95122
graphView.width($container.width());

0 commit comments

Comments
 (0)