В конкретном случае d3.easeBackInOut
вы можете установить амплитуду (называемую overshoot в API ) с помощью overshoot()
:
.ease(d3.easeBackInOut.overshoot(s))
//your value here----------------^
Вот демонстрация с использованием 3
в качестве выброса (значение по умолчанию 1.70158):
const svg = d3.select("svg");
svg.append("circle")
.attr("cx", 100)
.attr("cy", 50)
.attr("r", 10)
.style("stroke", "black")
.style("fill", "lightgray")
.transition()
.duration(2000)
.ease(d3.easeBackInOut.overshoot(3))
.attr("cx", 400);
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<svg width="500" height="100"></svg>
Кстати, вам не нужно связываться с t
.Его значение от 0 до 1 автоматически передается в функцию замедления.