|
3 | 3 |
|
4 | 4 | function resize(){
|
5 | 5 | DEPARTURES_AXIS_HEIGHT = window.innerHeight*0.05;//px
|
6 |
| - WEATHER_AXIS_HEIGHT = 20;//px |
| 6 | + WEATHER_AXIS_HEIGHT = window.innerHeight*0.05;//px |
7 | 7 | DEPARTURES_WIDTH_GRAPH = 1; //fraction
|
8 | 8 | WIDTH = window.innerWidth;
|
9 | 9 | WEATHER_HEIGHT = parseInt(d3.select("#weather").style("height")) - WEATHER_AXIS_HEIGHT;
|
10 | 10 | DEPARTURES_ROW_HEIGHT = (parseInt(d3.select("#departures").style("height")) - DEPARTURES_AXIS_HEIGHT) / config.departures.length;
|
11 | 11 | WEATHER_WIDTH_ONE = WIDTH/config.weather.steps;
|
| 12 | + WEATHER_CURTAIN_HEIGHT = 8; //px |
12 | 13 |
|
13 | 14 | TEXTHEIGHT_LAGOM = Math.min(24, Math.max(6, DEPARTURES_ROW_HEIGHT - 8));
|
14 | 15 | TEXTHEIGHT_SMALL = Math.min(18, Math.max(4, DEPARTURES_ROW_HEIGHT - 20));
|
|
74 | 75 |
|
75 | 76 | })
|
76 | 77 | d3.select("#weather").select("svg").selectAll(".column")
|
77 |
| - .attr("transform",function(d,i){return "translate("+(i* WEATHER_WIDTH_ONE)+",0)"}) |
| 78 | + .attr("width",WEATHER_WIDTH_ONE) |
| 79 | + .attr("height",WEATHER_HEIGHT+WEATHER_AXIS_HEIGHT) |
| 80 | + .attr("x",function(d,i){return i* WEATHER_WIDTH_ONE}) |
78 | 81 | .each(function(departure,index){
|
79 | 82 | var weatherOne = d3.select(this);
|
80 | 83 |
|
81 | 84 | weatherOne.select("circle.sun")
|
| 85 | + .attr("r", WEATHER_WIDTH_ONE/2*0.8) |
82 | 86 | .attr("cx", WEATHER_WIDTH_ONE/2);
|
| 87 | + |
| 88 | + var curtainsData = new Array(Math.floor(WEATHER_WIDTH_ONE/WEATHER_CURTAIN_HEIGHT)); |
| 89 | + var curtains = weatherOne.select("g.curtains").selectAll("rect").data(curtainsData); |
| 90 | + curtains.exit().remove(); |
| 91 | + curtains.enter().append("rect"); |
| 92 | + curtains.attr("width", WEATHER_WIDTH_ONE); |
| 93 | + |
83 | 94 | weatherOne.select("rect.rain")
|
84 | 95 | .attr("width", WEATHER_WIDTH_ONE/2)
|
85 | 96 | .attr("x", WEATHER_WIDTH_ONE/4);
|
86 | 97 | weatherOne.select("rect.wind")
|
87 |
| - .attr("x", WEATHER_WIDTH_ONE/2-WEATHER_WIDTH_ONE/6/2) |
88 |
| - .attr("width", WEATHER_WIDTH_ONE/6); |
| 98 | + .attr("x", WEATHER_WIDTH_ONE-WEATHER_WIDTH_ONE/8) |
| 99 | + .attr("width", WEATHER_WIDTH_ONE/8); |
89 | 100 |
|
90 |
| - weatherOne.select("text.sun") |
91 |
| - .attr("x", WEATHER_WIDTH_ONE/2); |
92 | 101 | weatherOne.select("text.rain")
|
93 | 102 | .attr("x", WEATHER_WIDTH_ONE/2);
|
94 |
| - weatherOne.select("text.wind") |
95 |
| - .attr("x", WEATHER_WIDTH_ONE/2) |
96 |
| - .attr("dy", "-0.32em"); |
97 |
| - weatherOne.select("text.temp") |
| 103 | + weatherOne.selectAll("text.wind") |
| 104 | + .attr("x", WEATHER_WIDTH_ONE) |
| 105 | + .attr("dy", "-0.18em") |
| 106 | + .attr("dx", "-0.72em"); |
| 107 | + weatherOne.selectAll("text.temp") |
98 | 108 | .attr("x", WEATHER_WIDTH_ONE/2)
|
99 | 109 | .attr("dy", "0.32em");
|
100 | 110 |
|
101 | 111 |
|
102 | 112 |
|
103 |
| - weatherOne.select("line.grid") |
104 |
| - .attr("y2",WEATHER_HEIGHT) |
| 113 | + weatherOne.select("rect.grid") |
| 114 | + .attr("y",0) |
| 115 | + .attr("x",WEATHER_WIDTH_ONE-1) |
| 116 | + .attr("height",WEATHER_HEIGHT) |
| 117 | + .attr("width",1) |
| 118 | + weatherOne.select("rect.grid.bottom") |
| 119 | + .attr("y",WEATHER_HEIGHT) |
| 120 | + .attr("x",0) |
| 121 | + .attr("height",1) |
| 122 | + .attr("width",WEATHER_WIDTH_ONE) |
105 | 123 | weatherOne.select("text.grid")
|
106 | 124 | .attr("x", WEATHER_WIDTH_ONE/2)
|
107 | 125 | .attr("y",WEATHER_HEIGHT + WEATHER_AXIS_HEIGHT);
|
|
0 commit comments