Логично, что движение объекта на определенное расстояние провоцирует его собственную тень сдвинуться на аналогичное расстояние, при условии постоянства источника света (это было вступление)
А решение кроется в отрицательном движении тени против вектора движения этого объекта.
Пример:.button {
width: 100px;
height: 45px;
background: #bbb;
box-shadow: 5px 0 15px #000;
}
.button:hover {
transform: translate(1px);
box-shadow: 4px 0 15px #000;
}