2015-03-11 1 views
1

У меня есть элемент div с overflow-y, установленный на auto. Теперь у меня есть набор элементов с классом highlight1. Я хочу прокручивать назад и вперед по элементам с помощью class как highlight1.jquery scrollto не прокручивается, чтобы исправить элемент

По какой-либо причине jQuery scrollTo не работает должным образом. Это синтаксис Я пытаюсь использовать:

$('#highlightDiv').animate({ 
    scrollTop: $("#"+elementId).offset().top + 'px' 
}, 'fast'); 

Вот Jsfiddle того, что я пытаюсь сделать. Может кто-нибудь объяснить, почему свиток не перемещается в нужный элемент.

ответ

6

Я простой ответ Ваш скрипт не знает высоту и положение свитки DIV, что Вы прокрутку вы должны добавить два значения к нему, и он должен работать

scrollTop в функции scrollToNextHighlight() должен выглядеть следующим образом

scrollTop: ($('#highlightDiv').scrollTop() - 
$('#highlightDiv').offset().top) 
+ $("#"+elementId).offset().top + 'px' 

, а затем он должен работать

+0

могли бы вы объяснить, почему вы добавляете это:. $ ('# highlightDiv') scrollTop() - $ ('# highlightDiv'). офф et(). top – javaMan

+0

это ($ ('# highlightDiv'). scrollTop() - $ ('# highlightDiv'). offset(). top) подсчитывает позицию прокрутки вверху div #highlightDiv, потому что вы добавляете только позицию прокрутки элемента будет отсчитываться сверху тела – arclite