block by enjalot feb930d94300b2dadf3ad3f16f579e9a

interpolating and easing

Full Screen

Built with blockbuilder.org

index.html

<!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; }
  </style>
</head>

<body>
  <script>
    // Feel free to change or delete any of the code you see in this editor!
    var width = 960
    
    var interpolateColor = d3.interpolateLab("steelblue", "brown")
    var interpolateWidth = d3.interpolateNumber(0, 960)
    
    var ease = d3.easeCubic
    
    var svg = d3.select("body").append("svg")
      .attr("width", width)
      .attr("height", 500)
    
    

    var rect = svg.append("rect")
    	.attr("x", 0)
    .attr("y", 100)
    .attr("height", 300)
    .attr("width", 100)
    .style("fill", "steelblue")
        
    svg.on("mousemove", function() {
      var mouse = d3.mouse(this)
      console.log("mouse", mouse)
      var t = mouse[0]/width
      var color = interpolateColor(t)
      rect.style("fill", color)
      	.attr("width", interpolateWidth(ease(t)))
      
    })


    
  </script>
</body>