Поскольку все они имеют разную высоту, вам необходимо хранить и использовать каждую высоту самостоятельно, я предлагаю использовать для этого $.data()
и .data()
. Также измените свои идентификаторы на классы, поскольку они должны быть уникальными.
$('.slickbox').hide().each(function() {
$.data(this, 'height', $(this).height());
});
$('.more a').toggle(function() {
var sb = $(this).parent().prev('.slickbox').slideDown(3200);
$('html, body').animate({
scrollTop: '+=' + sb.data('height')
}, 3200);
return false;
}, function() {
var sb = $(this).parent().prev('.slickbox').slideUp(3200);
$('html, body').animate({
scrollTop: '-=' + sb.data('height')
}, 3200);
return false;
});
You can test it out here, это перебирает и сохраняет высоту каждого .slickbox
(теперь используя класс!) И сохраняет его. При щелчке по каждой ссылке он специально переключает элемент class="slickbox"
, который предшествует ему, и использует значение 'height'
для прокрутки.
Черт бык! Ты сделал мой день :) Еще раз спасибо! PS: Вы научили меня действию аккордеона JQuery сегодня. благодаря – Martin