2011-09-22 14 views
6

私のウェブページには、オーバーフローしたdiv(つまり、垂直スクロールバー)があります。 div内には、IDを持つアンカーがあります。これらのIDの1つをURL(mypage.html#id)に入れると、ページではなくdivがそのアンカーにスクロールします。オーバーフローしたdivを証明ハッシュタグ(アンカー)にスクロールするにはどうすればよいですか?

どのようにすればよいのですか?複雑すぎる場合はjQueryを使用しますが、このプロジェクトでは何も使用していません。

+0

これまでのコードを表示 –

+0

これらの回答はすべて3つありますので、ありがとうございます。私はまだクロスブラウザテストを行う必要がありますが、今のところ私は.focus()と一緒に行きました – user323094

+0

したがって、複数のブラウズをテストすると、.scrollTop()だけが動作することがわかりました。 – user323094

答えて

9
$('.overflow').scrollTop($('#anchor').offset().top); 

あなたは、標準のJavaScriptにこれを変換することはできませんすべての理由はありません。

アンカー要素に余白がある場合、スクロールはオフになります。

+0

私はHTMLとCSSを少し再構成しなければなりませんでしたが、これは(.offset()ではなく).position()で動作します。 jQueryのソースを見て、これらのメソッドをリッピングするのはちょっと難しいかもしれません。成功すれば私は純粋なjavascriptを投稿しようとします。 – user323094

+0

これを取り除くには、jQueryの相互依存性が多すぎます。このソリューションではどうしたらいいのですか?次の機能では、とにかくjQueryを使用することに気づきました。答えをありがとう。 – user323094

+0

実際、私はfocus()を使ったより簡単な解決法を試してみましょう。 – user323094

2

アンカーにfocus()を設定しようとしましたか?

tabindexを持つDOM要素はすべてフォーカス可能であり、フォーカスを持つ要素はブラウザによって表示にスクロールされます。

+0

答えをありがとう。 – user323094

+0

ええ、ありがとう! – chris