Подтвердить что ты не робот

Jquery прокрутите до определенной позиции div в случае ошибки и фокуса

У меня есть скрытый div с конкретными сообщениями об ошибках по всей моей форме. Перед отправкой формы я запустил процедуру проверки, чтобы проверить, заполнены ли все необходимые поля некоторым текстом. Если нет, div с классом "redAlert" становится видимым прямо над текстовым полем. Я также хочу, чтобы диалоговое окно прокручивалось вправо до этой позиции, когда отображаются сообщения об ошибках. Я знаю, что для этого достаточно много плагинов, но я хочу сделать это, используя простой JQuery. Я пытаюсь A) Найти первый видимый div с классом redAlert, b) Найти свою позицию, вызвав .offset() в этом div, а затем c) вызвать .scroll() в объекте window, но я не получаю этого работать. Дайте мне знать, если мне что-то не хватает вообще, или мой синтаксис недействителен (я часто сталкивался с ошибкой синтаксиса с JQuery). Ниже мой код. Кроме того - это только поиск видимого div (при условии, что за один раз имеется только один аргумент ошибки), можете ли вы предоставить мне селектор для поиска первого видимого div с определенным классом.

var errorDiv = $('.redAlert:visible').attr("id");
var scrollPos = $("#"+errorDiv ).offset();
//alert(scrollPosition); // This alert always says 'null', why ?
$(window).scroll(scrollPos);
//Also tried scrollTo();

Спасибо большое заблаговременно.

4b9b3361

Ответ 1

var errorDiv = $('.redAlert:visible').first();
var scrollPos = errorDiv.offset().top;
$(window).scrollTop(scrollPos);

Демо: http://jsfiddle.net/Cjuve/2/

Ответ 2

Я не думаю, что это сработает.

Посмотрите на код, который я оставил

$('html, body').animate({
    scrollTop: ($('.error').first().offset().top)
},500);