jquery scrollto() новая позиция xy $(this) после динамического изменения высоты окна

ВСТУПЛЕНИЕ

Я использую следующий код для расширения и минимизации divs при нажатии. Когда страница загружается впервые, все div сводятся к минимуму.

Jquery

$(".listtitle").click(function(){
    $(".listbox").animate({height: "65px" }, 400)
    $(this).parent(".listbox").animate({"height":$(this).parent().get(0).scrollHeight},400);
    $('html, body').delay(1000).animate({scrollTop: $(this).parent().offset().top}, 400);
});

ЭТА ПРОБЛЕМА

Я склонен полагать, что координаты $(this) xy окна любого div ниже первого нажатого div теряются.

Я верю в это, потому что если я сначала нажму на нижний элемент div, затем следующий элемент над ним и т. Д., Он будет работать как надо, но если я нажму на элемент div выше другого, то следующий элемент под ним не будет работать.,

СМОТРЕТЬ JSFIDDLE

http://jsfiddle.net/ChDdE/3868/

ВОПРОС

Есть ли способ установить xy кординаты window.location при каждом нажатии div? или я должен думать в другом направлении?

1 ответ

В итоге я создал отдельную функцию и вызвал функцию scroll2 в конце скрипта. Важно отметить, что я создал переменную для $(this).offset(), которая отличается от исходной переменной $(this).parent(). Offset ().

НОВЫЙ КОД

$(".listtitle").click(function(){
 $(".listbox").animate({height: "65px" }, 400)
 $(this).parent(".listbox").animate({"height":$(this).parent().get(0).scrollHeight},400, scroll2);
});

function scroll2() {
var offset = $(this).offset();
 $('html, body').animate({scrollTop: offset.top}, 400);
}

СМОТРЕТЬ JSFIDDLE

http://jsfiddle.net/ChDdE/3871/

Другие вопросы по тегам