Если в псевдоэлементе ::before контент какой-то картинки и небольшого текста, то лучше чтобы он и сдвигался а блок которого он относителен был в роли того самого фона. Если псевдоэлемент использовать в качестве фона, он будет поверх относительного блока и z-index мне в этом случае не помог(может что-то не так сделал); к тому же надо постоянно держать указатель на относительном блоке чтобы он не начал возвращаться обратно(можно решить с помощью transition-delay).
Проще всего сделать просто дополнительный блок, тогда и возможностей анимирования будет чуть больше.
https://jsfiddle.net/ep257ofq/1/
Это конечно не ответ на вопрос, скорее просто мнение.