Skip to content

Instantly share code, notes, and snippets.

@robdodson
Created March 23, 2013 17:36
Show Gist options
  • Select an option

  • Save robdodson/5228623 to your computer and use it in GitHub Desktop.

Select an option

Save robdodson/5228623 to your computer and use it in GitHub Desktop.
D3 Waves
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<style>
.bar {
height: 5px;
width: 0;
background: blue;
margin-bottom: 1px;
}
</style>
<div class="bar" data-delay="0" data-duration="2000" data-min="0px" data-max="100px"></div>
<div class="bar" data-delay="100" data-duration="2000" data-min="0px" data-max="105px"></div>
<div class="bar" data-delay="200" data-duration="2000" data-min="0px" data-max="110px"></div>
<div class="bar" data-delay="300" data-duration="2000" data-min="0px" data-max="115px"></div>
<div class="bar" data-delay="400" data-duration="2000" data-min="0px" data-max="120px"></div>
<div class="bar" data-delay="500" data-duration="2000" data-min="0px" data-max="125px"></div>
<div class="bar" data-delay="600" data-duration="2000" data-min="0px" data-max="120px"></div>
<div class="bar" data-delay="700" data-duration="2000" data-min="0px" data-max="115px"></div>
<div class="bar" data-delay="800" data-duration="2000" data-min="0px" data-max="110px"></div>
<div class="bar" data-delay="900" data-duration="2000" data-min="0px" data-max="105px"></div>
<div class="bar" data-delay="1000" data-duration="2000" data-min="0px" data-max="100px"></div>
<div class="bar" data-delay="1100" data-duration="2000" data-min="0px" data-max="105px"></div>
<div class="bar" data-delay="1200" data-duration="2000" data-min="0px" data-max="110px"></div>
<div class="bar" data-delay="1300" data-duration="2000" data-min="0px" data-max="115px"></div>
<div class="bar" data-delay="1400" data-duration="2000" data-min="0px" data-max="120px"></div>
<div class="bar" data-delay="1500" data-duration="2000" data-min="0px" data-max="125px"></div>
<div class="bar" data-delay="1600" data-duration="2000" data-min="0px" data-max="120px"></div>
<div class="bar" data-delay="1700" data-duration="2000" data-min="0px" data-max="115px"></div>
<div class="bar" data-delay="1800" data-duration="2000" data-min="0px" data-max="110px"></div>
<div class="bar" data-delay="1900" data-duration="2000" data-min="0px" data-max="105px"></div>
<div class="bar" data-delay="2000" data-duration="2000" data-min="0px" data-max="100px"></div>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
d3.selectAll('.bar')
.transition()
.delay(function() { return this.getAttribute('data-delay'); })
.duration(function() { return this.getAttribute('data-duration'); })
.ease(d3.ease('elastic'))
.styleTween('width', function() {
return d3.interpolate(this.getAttribute('data-min'), this.getAttribute('data-max'));
})
.transition()
.styleTween('background', function() {
return d3.interpolate('blue', 'red');
})
.transition()
.ease(d3.ease('elastic'))
.styleTween('width', function() {
return d3.interpolate(this.getAttribute('data-max'), this.getAttribute('data-min'));
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment