2015-04-20 134 views
0

我有一個可滾動的div(800px x 400px)。裏面是500個較小的divs(100px x 80px),所以它是一個長期可滾動的。每個較小的div都有一個id。當我按下按鈕時,我想滾動到特定的div。Javascript或html - 滾動到div內滾動div

我已經嘗試了一些像

$("#outerDiv").scrollTop() = $("#innerDiv").scrollTop(); 

但我不知道,如果是scrollTop的正確的方法呢? (我知道我不正確使用它)

是否有任何直觀的方式來做到這一點在JavaScript(首選)或只是純HTML?

回答

1
  1. 您可以將方法的返回值不分配給別的東西。正確的值不能被評估。

    $("#outerDiv").scrollTop() = something是錯誤的

  2. 你想應該是通過設置實現什麼封閉容器的scrollTop一個子元素的偏移父。

    $("#outerDiv").scrollTop($("#innerDiv").position().top);

+0

幾乎工作! :-D謝謝。它滾動到內部div的底部 - 有沒有辦法讓它滾動到內部div的TOP? –

+0

它可能與您的內部元素中使用的盒子模型有關。在你的情況下,嘗試進一步減去內部div的高度? – WawaBrother

+0

謝謝,它正在工作:) –

0

您需要將外部div的scrollTop()設置爲內部divposition().top。此外,您的語法設置scrollTop是有點關閉。試試這個:

$("#outerDiv").scrollTop($("#innerDiv").position().top); 

Example fiddle

+0

謝謝你快回答!它是有道理的,但似乎並不奏效。我在這裏做錯了什麼?:$(「#clearButton」)。click(function(){(「#calender」)。scrollTop()= $(「#05052015」)。position()。top; }) –

+0

如果我alert(),我可以警告外部div的當前scrollTop和內部div的位置(工程) - 但語句不滾動外部div到內部的div .. –

+0

我已經修改了我的答案你,看我的更新。 –

2

使用JavaScript

document.getElementById('outerDiv').scrollTop = document.getElementById('innerDiv').offsetTop; 

滾動頂部 如果要滾動元素的內容,使用scrollLeft和scrollTop的屬性 - Link

偏移頂部 HTMLElement.offsetTop只讀屬性返回當前元素相對於offsetParent節點頂部的距離。 MDN -Link

Fiddle

+0

請給你的答案添加一些解釋。 –