2012-04-18 18 views
1

私はスクロール可能なdivを画面上のどこかに持っています。スクロール可能なdivの中心ビューの子を配置する

私はそのdivのどこかにそのdivの子を持っています。

この子を表示領域の中央に配置するには、divをスクロールするにはどうすればよいですか?

(どのように私はdiv要素の表示幅と高さを決定するであろう、そしてどのように私はこれを中心に長方形のコントロールを配置するためにスクロールするのでしょうか?)

+0

を使用する必要がありますかユーザーいくつかのライブラリ、jQueryの例えば? – antyrat

+0

私は純粋なJSを持つことを好むでしょう。 jQueryを使ってそれを行う方法を説明することはもちろん、他の読者にとっても役に立つかもしれません。私はそれもアップアップします;) – Will

答えて

0

element.scrollIntoView()あなたが探してどのようなことがあります。

http://jsfiddle.net/a9s2G/

scrollIntoView docs

+0

どのようにそれを中心にしますか? – Will

+0

スクロール領域のサイズに一致し、その要素のコンテンツを中央に配置した要素に対して 'scrollintoview()'を使用するとできます。 –

+0

どのようにして可視領域のサイズを決定しますか? – Will

0

あなたはjQueryのを使用する場合は、scrollToプラグインを試すことができます。

純粋なjsでこれはelement.scrollTopを使用して行うことができます。あなたは要素の位置を<div>の中に入れ、その値をスクロールメインdivよりも使用する必要があります。

内部要素の位置を計算するには、offsetTopoffsetLeftのプロパティを使用して、親要素に関連するtopおよびleftプロパティのオフセットを取得する必要があります。

あなたの要素を中央に、あなたはまた、あなたが純粋なJSを使用していることを行う必要がありelement.scrollLeft

+0

'scrollTop'と' scrollLeft'に送るオフセットをどのように計算しますか? – Will

+0

私は自分の質問を更新しました。 – antyrat

+0

確かにdivの目に見えるサイズも知っている必要がありますか?私はコンテンツサイズを取得する方法を検討しましたが、ウィンドウ内のサイズは取得しません – Will