2013-12-16 22 views
0

Я пытаюсь прокрутить мою базу содержимого div на том, какие ссылки нажимает пользователь.Как прокрутить div в моем случае?

http://jsfiddle.net/BPB7z/11/

Мои коды отлично работает, когда я без прокрутки вниз. Однако, если я прокручиваю вниз и нажимаю ссылку, содержимое будет прокручиваться вверх, вместо текущей верхней позиции.

Например.

 //works fine without scrolling the windows. 
------------------------------------ <- top of my browser 
    test1 | test1 
    test2 | 
    test3 | 
      | 
      | 
      | 
      | test2 

Если я прокручиваю свои окна и нажимаю кнопку «тест» 9. Тест 9 div будет скрыт, как

------------------------------- <- top of my browser. 
test9  | 
test10 | 
test11 |test10 
test12 | 
      | 
      | 
      | 

Может кто-нибудь помочь мне решить эту проблему? Большое спасибо!

+0

Вы установили высоту 900px. Это выше, чем высота браузера, поэтому теперь у вас есть 2 полосы прокрутки. Если вы прокрутили прокрутку браузера (а не только прокрутку '# items'), верхняя часть этого div скрыта от страницы вверху. – davidpauljunior

+0

Точно - это ситуация, о которой он спрашивает, как обращаться, и цель здесь. –

+1

Хорошо. Я интерпретировал это как что-то, что произошло, когда вы прокручивали переполненный автоматический div. Я добавил комментарий, если OP не знал, что сам браузер также прокручивается. – davidpauljunior

ответ

1

Надеюсь, я правильно понял ваш вопрос. Если да, то это небольшое обновление будет работать:

http://jsfiddle.net/BPB7z/13/

$('#items').animate({ 
    scrollTop: $('#'+id+'-test').offset().top - $(window).scrollTop() + $('#items').scrollTop() 
}, 700); 

Путем вычитания $(window).scrollTop() значения, мы находим истинное положение анимировать, если принять во внимание текущее положение прокрутки окна.

+0

именно то, что мне нужно здесь. Благодаря! – FlyingCat

Смежные вопросы