Skip to content

Instantly share code, notes, and snippets.

@lordliquid
Last active March 1, 2018 03:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lordliquid/06925fa13816dd058a827691e03217d3 to your computer and use it in GitHub Desktop.
Save lordliquid/06925fa13816dd058a827691e03217d3 to your computer and use it in GitHub Desktop.
Balloon
license: mit
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script src="https://d3js.org/d3.v4.min.js"></script>
<style>
body { margin:0;position:fixed;top:0;right:0;bottom:0;left:0; }
.line {
stroke: black;
stroke-width: 2;
fill: red;
opacity: .25;
}
</style>
</head>
<body>
<script>
// Feel free to change or delete any of the code you see in this editor!
var svg = d3.select("body").append("svg")
.attr("width", 960)
.attr("height", 500)
let group = svg.append('g')
.attr('transform', 'translate(200, 200)')
let line = group.append('path').attr('class', 'line');
var i = 1;
function complete() {
d3.select('.line')
.style('fill', 'green')
}
function myLoop() {
setTimeout(function() {
i++;
d3.select('.line')
.transition()
.duration(250)
.ease(d3.easeLinear)
.attr('d',
`M ${0} ${0} C ${i* 2} ${i *2} ${i * 2} ${0} ${100} ${0}`
);
if (i < 250) {
myLoop();
} else {
complete();
}
}, 20);
}
myLoop();
</script>
</body>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment