1
- $ ( document ) . ready ( function ( ) {
1
+ // $(document).ready(function() {
2
+
3
+ // setting css for elements
4
+ var windowHeight = window . innerHeight - 8 ;
5
+ var windowWidth = window . innerWidth - 8 ;
6
+
7
+ var borderWidth = 1 ;
8
+
9
+ var headerHeight = 0.07 * windowHeight ;
10
+ if ( headerHeight > 50 ) { headerHeight = 50 ; }
11
+
12
+ var headerFontSize = 0.05 * windowHeight ;
13
+ if ( headerFontSize > 36 ) { headerFontSize = 36 ; }
14
+
15
+ var headerFontSpacing = windowWidth * 0.0025 ;
16
+ if ( headerFontSpacing > 3 ) { headerFontSpacing = 3 ; }
17
+
18
+ var topMargin = 0.02 * windowHeight ;
19
+ if ( topMargin > 10 ) { topMargin = 10 ; }
20
+
21
+ var divPadding = 0.01 * windowHeight ;
22
+ if ( divPadding > 8 ) { divPadding = 8 ; }
23
+
24
+
25
+ var rightWidth = 0.3 * windowWidth - ( 2 * divPadding ) ;
26
+ if ( rightWidth > 400 - ( 2 * divPadding ) ) { rightWidth = 400 - ( 2 * divPadding ) ; }
27
+
28
+ var centerWidth = windowWidth - rightWidth - ( 4 * divPadding ) - ( 4 * borderWidth ) ;
29
+
30
+ var mainHeight = windowHeight - headerHeight - topMargin ;
31
+ var dashboardHeight = mainHeight - ( 2 * divPadding ) - ( 2 * borderWidth ) ;
32
+ var optionsHeight = ( mainHeight * 0.4 ) - ( 2 * divPadding ) - ( 2 * borderWidth ) ;
33
+ var navigatorHeight = mainHeight - optionsHeight - topMargin - ( 4 * divPadding ) - ( 4 * borderWidth ) ;
34
+
35
+ d3 . select ( "#wrapper" )
36
+ . style ( "height" , windowHeight + "px" )
37
+ . style ( "width" , windowWidth + "px" )
38
+ . style ( "margin" , "4px" ) ;
39
+ d3 . select ( "#header" )
40
+ . style ( "font-size" , headerFontSize + "px" )
41
+ . style ( "letter-spacing" , headerFontSpacing + "px" )
42
+ . style ( "width" , "96%" )
43
+ . style ( "height" , headerHeight + "px" )
44
+ . style ( "vertical-align" , "middle" )
45
+ . style ( "background-color" , "rgb(68,68,68)" )
46
+ . style ( "padding-left" , "1%" )
47
+ . style ( "padding-right" , "3%" ) ;
48
+ d3 . select ( "#tree" )
49
+ . style ( "float" , "left" )
50
+ . style ( "margin-top" , topMargin + "px" )
51
+ . style ( "width" , centerWidth + "px" )
52
+ . style ( "height" , mainHeight + "px" ) ;
53
+ d3 . select ( "#dashboard" )
54
+ . style ( "float" , "left" )
55
+ . style ( "width" , rightWidth + "px" )
56
+ . style ( "height" , dashboardHeight + "px" )
57
+ . style ( "padding" , divPadding + "px" )
58
+ . style ( "margin-top" , topMargin + "px" )
59
+ . style ( "border" , borderWidth + "px solid" )
60
+ . style ( "border-color" , "rgb(229,150,54)" )
61
+ . style ( "background-color" , "#fff" ) ;
62
+
63
+ //collapsing tree
2
64
3
65
var margin = { top : 20 , right : 120 , bottom : 20 , left : 120 } ,
4
66
width = 960 - margin . right - margin . left ,
@@ -14,12 +76,59 @@ $(document).ready(function() {
14
76
var diagonal = d3 . svg . diagonal ( )
15
77
. projection ( function ( d ) { return [ d . y , d . x ] ; } ) ;
16
78
17
- var svg = d3 . select ( "body " ) . append ( "svg" )
79
+ var svg = d3 . select ( "#tree " ) . append ( "svg" )
18
80
. attr ( "width" , width + margin . right + margin . left )
19
81
. attr ( "height" , height + margin . top + margin . bottom )
20
82
. append ( "g" )
21
83
. attr ( "transform" , "translate(" + margin . left + "," + margin . top + ")" ) ;
22
84
85
+ //View Finder vars
86
+ //view finder based on: http://bl.ocks.org/mbostock/1667367
87
+
88
+ var margin = { top : 0 , right : 0 , bottom : 0 , left : 0 } ,
89
+ margin2 = { top : 0 , right : 0 , bottom : 20 , left : 0 } ,
90
+ width = ( ( document . getElementById ( "options" ) . offsetWidth ) * 0.8 ) - margin . left - margin . right , //200 - margin.left - margin.right,
91
+ height = ( ( document . getElementById ( "options" ) . offsetWidth ) * 0.25 ) - margin . top - margin . bottom , //100 - margin.top - margin.bottom,
92
+ height2 = ( ( document . getElementById ( "options" ) . offsetWidth ) * 0.25 ) - margin2 . top - margin2 . bottom ; //100 - margin2.top - margin2.bottom;
93
+
94
+ var parseDate = d3 . time . format ( "%Y" ) . parse ;
95
+
96
+ var x = d3 . time . scale ( ) . range ( [ 0 , width ] ) ,
97
+ x2 = d3 . time . scale ( ) . range ( [ 0 , width ] ) ,
98
+ y = d3 . scale . linear ( ) . range ( [ height , 0 ] ) ,
99
+ y2 = d3 . scale . linear ( ) . range ( [ height2 , 0 ] ) ;
100
+
101
+ var xAxis = d3 . svg . axis ( ) . scale ( x ) . orient ( "bottom" ) ,
102
+ xAxis2 = d3 . svg . axis ( ) . scale ( x2 ) . orient ( "bottom" ) ,
103
+ yAxis = d3 . svg . axis ( ) . scale ( y ) . orient ( "left" ) ;
104
+
105
+ var brush = d3 . svg . brush ( )
106
+ . x ( x2 )
107
+ . on ( "brush" , brushed ) ;
108
+
109
+ var area2 = d3 . svg . area ( )
110
+ . interpolate ( "monotone" )
111
+ . x ( function ( d ) { return x2 ( d . years ) ; } )
112
+ . y0 ( height2 )
113
+ . y1 ( function ( d ) { return y2 ( d . studies ) ; } ) ;
114
+
115
+ var svg = d3 . select ( "#options" ) . append ( "svg" )
116
+ . attr ( "width" , width + margin . left + margin . right )
117
+ . attr ( "height" , height + margin . top + margin . bottom ) ;
118
+
119
+ svg . append ( "defs" ) . append ( "clipPath" )
120
+ . attr ( "id" , "clip" )
121
+ . append ( "rect" )
122
+ . attr ( "width" , width )
123
+ . attr ( "height" , height ) ;
124
+
125
+ var context = svg . append ( "g" )
126
+ . attr ( "class" , "context" )
127
+ . attr ( "transform" , "translate(" + margin2 . left + "," + margin2 . top + ")" ) ;
128
+
129
+
130
+ //load data for collapsing tree
131
+
23
132
d3 . json ( "/data/plos.json" , function ( error , flare ) {
24
133
console . log ( flare ) ;
25
134
root = flare ;
@@ -138,4 +247,10 @@ $(document).ready(function() {
138
247
}
139
248
update ( d ) ;
140
249
}
141
- } ) ;
250
+
251
+ // View Finder
252
+
253
+
254
+
255
+
256
+ // });
0 commit comments