Built with blockbuilder.org
Last active
March 24, 2018 11:08
-
-
Save ideaOwl/95dca9b901fd96e46abf916e4caf3057 to your computer and use it in GitHub Desktop.
D3 Workshop: Part 2 - SVGs and d3 Transitions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
license: mit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<head> | |
<meta charset="utf-8"> | |
<script src="https://d3js.org/d3.v4.min.js"></script> | |
</head> | |
<body> | |
<input type="button" | |
value="Run d3 code" | |
onclick="runCode()"/> | |
<svg width="400px" height="300px"> | |
<rect x="50" y="150" width="300" | |
height="100" | |
fill="blue" /> | |
<circle cx="100" cy="100" r="90" | |
stroke="pink" | |
stroke-width="10" | |
fill="red" /> | |
</svg> | |
<script> | |
function runCode() { | |
let data = [ | |
{'color': 'purple'}, | |
{'color': 'green'}, | |
{'color': 'red'}, | |
{'color': 'yellow'}, | |
{'color': 'cyan'}, | |
{'color': 'orange'}, | |
]; | |
let svg = d3.select('svg'); | |
// Start coding here | |
}; | |
</script> | |
<!-- ---------------------------------------------------------- --> | |
<!-- ---------------------------------------------------------- --> | |
<!-- Ignore this text below, it's not relevant for the exercise --> | |
<!-- ---------------------------------------------------------- --> | |
<!-- ---------------------------------------------------------- --> | |
<p class="exercise"> | |
<hr/> | |
<h3>Exercise:</h3> | |
<ul> | |
<li>Part 1</li> | |
<ol> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Create a small yellow 20x20 rect manually</span> | |
</label> | |
</li> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Create a small green 20x20 rect with d3</span> | |
</label> | |
</li> | |
</ol> | |
<li>Part 2</li> | |
<ol> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Delete the green rect with d3 if one exists before creating a new one</span> | |
</label> | |
</li> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Move the green rectangle to a random location</span> | |
</label> | |
</li> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Transition the green rectangle moving</span> | |
</label> | |
</li> | |
</ol> | |
<li>Part 3</li> | |
<ol> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Add rectangles from "data"</span> | |
</label> | |
</li> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Move the rectangles like you do with the green (p1)</span> | |
</label> | |
</li> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Redo p1 but do an update (p2)</span> | |
</label> | |
</li> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Transition the colors to the data's colors</span> | |
</label> | |
</li> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Transition to random colors</span> | |
</label> | |
</li> | |
</ol> | |
<li>Part 4: You're done!</li> | |
<ol> | |
<li> | |
<label> | |
<input type="checkbox"/> | |
<span class="exercise">Check everything off using d3 on clicking button</span> | |
</label> | |
</li> | |
</ol> | |
</ul> | |
</p> | |
<style> | |
body { | |
margin: 20px; | |
} | |
ul > li { | |
font-weight: bold; | |
margin: 5px 0px; | |
} | |
ol li { | |
font-weight: normal; | |
margin-bottom: 0px; | |
} | |
ol li label { | |
cursor: pointer; | |
} | |
input:checked~.exercise { | |
text-decoration: line-through; | |
} | |
</style> | |
</body> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment