Поскольку я не знаю, как выглядит ваш HTML, я позаимствовал демонстрацию ScrollTo.Вы можете попробовать сделать ссылку, которая имеет фокус внутри панели, чтобы панель стала видимой ( demo ):
Примерно так:
$('#pane-target li a').bind('focusin', function() {
$('#pane-target').scrollTo( $(this).closest('li'), 800, {queue: true} );
})
Обновленная демоверсия для удаленияконфликт между связыванием и нажатием на кнопку возврата.
Обновление : изменено demo для работы с HTML / Script по предоставленной вами ссылке.Мне пришлось немного его изменить, чтобы ссылки не конфликтовали.Также я переместил класс .selected
к элементу вместо ссылки только на первой панели.Надеюсь, я добавил достаточно комментариев, чтобы все было понятно.
$('a').bind('focusin click', function(e){
// focusin occurs before click
if (e.type == 'click') {
var tar = $(this).attr('href');
if ($(this).is('.panel')) {
// clicked on a.panel; scroll to destination
$('#wrapper').scrollTo(tar, 800);
//reset and highlight the clicked link
$('.item').removeClass('selected');
$(tar).addClass('selected');
//cancel the link default behavior
return false;
} else {
// clicked on link (not '.panel'), return true in case it's an external link
return true;
}
} else {
// link was focused
var time, item = $(this).closest('.item');
if (item.is('.selected')){
// if item is already in view (position it immediately)
time = 0;
} else {
// item is not in view, so smoothly scroll & update classes
time = 800;
$('.item').removeClass('selected');
item.addClass('selected');
}
$('#wrapper').scrollTo(item, time);
}
});