transition-timing-functionのcubic-bezierを使ってイージングを設定してみます。
サンプルコード
まずはtransition-timing-functionを特に設定せずに実装してみます。
HTML
buttonにオンマウスでアニメーションするようにします。
<button>オンマウスで移動</button> <div class="sample"></div>
CSS
.sample {
width: 100px;
height: 100px;
-webkit-transform: translateX(0);
transform: translateX(0);
background: #E74C3C;
-webkit-transition: 1s;
transition: 1s;
}
button:hover + .sample {
-webkit-transform: translateX(200px);
transform: translateX(200px);
}
cubic-bezierを設定する場合、オンラインツールで調整すると便利です。
今回はCeaser – CSS Easing Animation Tool – Matthew Leinというサイトを使ってみます。
上記ページ内にあるEasingの項目を設定することで、下のコードの数値が調整されます。

今回はeaseOutBackを選択して、以下のようにしてみました。
CSS
.sample {
width: 100px;
height: 100px;
-webkit-transform: translateX(0);
transform: translateX(0);
background: #E74C3C;
-webkit-transition: 1s cubic-bezier(0.175, 0.885, 0.320, 1.275);
transition: 1s cubic-bezier(0.175, 0.885, 0.320, 1.275);
}
button:hover + .sample {
-webkit-transform: translateX(200px);
transform: translateX(200px);
}
左側のハンドルを動かすことで、カスタマイズすることもできます。

easeOutBackの戻る動きを大きくしてみました。
CSS
.sample {
width: 100px;
height: 100px;
-webkit-transform: translateX(0);
transform: translateX(0);
background: #E74C3C;
-webkit-transition: 1s cubic-bezier(0.175, 0.885, 0.350, 1.650);
transition: 1s cubic-bezier(0.175, 0.885, 0.350, 1.650);
}
button:hover + .sample {
-webkit-transform: translateX(200px);
transform: translateX(200px);
}
【参考サイト】
コメントが承認されるまで時間がかかります。