Причина в том, что когда клавиатура выскакивает, окно просмотра устройства сжимается и изображение настраивается на уменьшенную высоту.Решение состоит в том, чтобы ваши элементы div всегда обеспечивали 100% высоты.
Попробуйте сделать
html,body{
height:100%;
}
.container{
min-height:100%;
}
Вместо установки фона внутри тела подумайте о создании дополнительного div с классом.background, установите его положение относительно и высоту 100%
.background{
position:relative;
background:url("yourimage") cover no-repeat;
height:100%;
}
установите содержимое формы внутри div с классом .form-contents и установите абсолютную позицию
.form-contents{
position:absolute;
}