На мобильной версии сайта есть боковая панель с формой. По умолчанию ширина панели равна 50% экрана. Хочу сделать, чтобы при получения фокуса полями формы, панель увеличивалась до 100% ширины экрана, что я успешно реализовал:
$('#callback-form').focusin(function(){
$('#sidebar').animate({left: '0%',width: '100%'}, 200);
});
Так же реализован возврат ширины до 50% после потери фокуса полями:
$('#callback-form').focusout(function(){
$('#sidebar').animate({width: '50%',left: '50%'}, 200);
});
Но, к сожалению, оба триггера срабатывают даже когда идет простое переключение фокуса между полями. Получается, что после выбора другого поля, панель сначала сужается, потом снова расширяется. А так как у меня еще стоит валидация полей html5, то после нажатия submit панель вообще колбасит, если поле не валидное.
Итак, как все-таки выстроить логику?
.is( ":focus" )
почему-то не срабатывает.