<?php
include_once "../d3.classes.inc.php";
include_once "../wrappers/pyramid.php";
?><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://www.peteraldhous.com/Scripts/d3.min.js"></script>
<script src="data/constant.js"></script>
<style >
body {
font-family: arial, sans-serif;
font-size: 14px;
margin: 0;
padding: 5px;
color: #888;
}
a {
color: #888;
text-decoration: underline;
}
a:hover {
color: #000;
text-decoration: underline;
}
a.active {
color: #000;
}
.label {
position: absolute;
top: 10px;
left: 15px;
font-size: 30px;
font-weight: bold;
color: #d3d3d3;
}
.years, .controls {
position: relative;
padding-top: 10px;
width: 625;
text-align: center;
font-size: 14px;
}
.years span, .controls span {
padding-left: 2px;
padding-right: 2px;
}
.years .title {
font-size: 14px;
}
.years a, .controls a {
color: #888;
text-decoration: none;
}
.years a:hover, .controls a:hover {
color: #000;
text-decoration: underline;
}
.years a.active {
color: #000;
}
.controls a {
text-decoration: none;
}
svg {
shape-rendering: crispEdges;
}
.white {
position: absolute;
top: 70px;
left: 40px;
font-size: 14px;
font-weight: 600;
color: 3F8963;
}
.hispanic {
position: absolute;
top: 70px;
left: 360px;
font-size: 14px;
font-weight: 600;
color: D39713;
}
.black {
position: absolute;
top: 400px;
left: 40px;
font-size: 14px;
font-weight: 600;
color: 3377A3;
}
.asian {
position: absolute;
top: 400px;
left: 360px;
font-size: 14px;
font-weight: 600;
color: C5446C;
}
</style>
</head>
<body>
<script type="text/javascript">
var ctrls = d3.select("body")
.append("div")
.attr("class", "controls");
ctrls.append("text").append("a")
.attr("class", "control back")
.attr("href", "javascript:play(true);")
.text("< Play ");
ctrls.append("text").append("a")
.attr("class", "control toggle")
.attr("href", "javascript:toggle();")
.text("| Pause |");
ctrls.append("text").append("a")
.attr("class", "control forward")
.attr("href", "javascript:play();")
.text(" Play >");
var div = d3.select("body")
.append("div")
.attr("class", "years");
div.append("span")
.attr("class", "title")
.text("Select year:");
div.selectAll("span.link")
.data(d3.range(2010, 2051, 10))
.enter("span")
.attr("class", "link")
.append("a")
.attr("class", linkClass)
.attr("href", function(d) { return d==0000?null:"javascript:goto("+d+");"; })
.text(function(d) { return d.toFixed(0); });
var colors = [,"#3F8963", "#D39713", "#3377A3", "#C5446C"];
document.onkeydown = function(event) {
var y = year;
switch (event.keyCode) {
case 37: // left arrow
y = Math.max(2010, year-10);
case 39: // right arrow
y = Math.min(2050, year+10);
case 32: // space bar
toggle();
return;
}
if (y != year) goto(y);
};
function isYear(d) { return d.year == year; }
function goto(yr, dur) {
dur = dur || 300;
var old = year;
year = yr;
label.text(year);
div.selectAll("span.link a")
.attr("class", linkClass);
updates.forEach(function(u) { u(yr, dur, old); });
}
var timer = undefined;
function stop() {
clearInterval(timer);
timer = undefined;
ctrls.select("a.toggle").text("| Pause |");
}
function toggle() {
if (!timer) {
play();
} else {
stop();
}
}
function play(rev) {
rev = rev || false;
if (timer) { stop(); }
ctrls.select("a.toggle").text("| Pause |");
var advance = function() {
var y = year + (rev?-1:1)*10;
if (y < 2010 || y > 2050) {
// stop at end points
stop();
return;
} else {
// else advance
goto(y, 800);
}
};
advance();
timer = setInterval(advance, 850);
}
function linkClass(y) {
return "y"+y.toFixed(0) + (y==year?" active":"");
}
<?php
$chart = new d3Pyramid();
echo $chart->render();
?>
</script>
<div class="white">
White (Non-<br>Hispanic)
</div>
<div class="hispanic">
Hispanic
</div>
<div class="black">
Black
</div>
<div class="asian">
Asian
</div>
</body>
</html>
|