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