2012-04-18 161 views
1

我在屏幕上的某個地方有一個可滾動的div。可滾動div的中心視圖

我有一個孩子的div在某個地方。

我該如何滾動div來將這個孩子放在可見區域的中心?

(我將如何確定div的可見寬度和高度,我怎麼會滾動放置在該中心的矩形控制?)

+0

你需要的是用純JS做,或者你的用戶一些庫,jQuery的例如? – antyrat 2012-04-18 10:08:46

+0

我寧願擁有純粹的JS。解釋如何用jQuery實現它當然可以對其他讀者有用,我也會贊同這一點;) – Will 2012-04-18 10:09:43

回答

0

element.scrollIntoView()可能是你在找什麼。

http://jsfiddle.net/a9s2G/

scrollIntoView docs

+0

那你怎麼把它集中呢? – Will 2012-04-18 10:18:26

+0

你可以通過在一個匹配滾動區域大小的元素上使用'scrollintoview()'來實現,並使該元素中的內容居中。 – 2012-04-18 10:19:40

+0

您如何確定可見區域的大小? – Will 2012-04-18 10:22:01

0

如果你使用jQuery,您可以嘗試scrollTo插件。

在純js中,這可以使用element.scrollTop完成。您需要獲取<div>以內的元素位置,並使用該值滾動主分區。

要計算內部元素位置,您需要使用offsetTopoffsetLeft屬性獲取它與父元素相關的頂部和左側屬性。

要居中你的元素還可能需要使用element.scrollLeft

+0

你如何計算髮送到'scrollTop'和'scrollLeft'的偏移量? – Will 2012-04-18 10:18:58

+0

我已更新我的問題。 – antyrat 2012-04-18 10:21:58

+0

當然,你也需要知道div的可見大小嗎?我已經研究出如何獲得其內容大小,但不是其窗內大小 – Will 2012-04-18 10:23:16