Представим, что у нас есть чудесное выражение вида k1*n1 + k2*n2 + ... + kN*nN = (ak, bk, ck)
<div id="container">
<div id="animateMe"></div>
<button id="startAnimate">Начать анимацию</button>
</div>
#container:hover>#animateMe {
will-change: transform;
}
var container = document.getElementById("container");
var animateMe = document.getElementById("animateMe");
var button = document.getElementById("startAnimate");
// заметьте, mouseenter на animateMe, а не на container!!!
animateMe.addEventListener("mouseenter", function() {
this.style.willChange = 'transform, opacity';
});
// и сама анимация
button.addEventListener("click", function() {
animateMe.style["transform"] = "translate3d(100px,0,0);"
}