Пример со смещением и сменой заливки
https://codepen.io/lonsaria/pen/djaaOd
1. Родительский блок
overflow: hidden; position: relative;
2. Блоки внутри
position: absolute;
2.1. Блоки занимают всю доступную высоту и ширину родительского блока
height: 100%; width: 100%;
.
2.2. Один отображается по-умолчанию
top: 0;
2.3. Другой скрыт из видимой области
top: 100%;
3. При наведении блоки смещаются вверх. Первый
top: -100%;
Второй
top: 0;