私がやりたいことは、ページ内の要素を展開するときにウィンドウを下にスクロールすることです。
私が達成しようとしている効果は、スタック オーバーフローのコメントのようなものです。ページを超えて拡大する場合は、すべてのコメントがウィンドウに収まるように下にスクロールします。
これを行う最善の方法は何ですか?
編集:JQueryを使用しています。
私がやりたいことは、ページ内の要素を展開するときにウィンドウを下にスクロールすることです。
私が達成しようとしている効果は、スタック オーバーフローのコメントのようなものです。ページを超えて拡大する場合は、すべてのコメントがウィンドウに収まるように下にスクロールします。
これを行う最善の方法は何ですか?
編集:JQueryを使用しています。
この jQuery プラグインは私にとってはうまくいきました: http://demos.flesler.com/jquery/scrollTo/
このコードを使用することはできますが、問題はありませんが、完全ではありません。blonkmによる提案に基づく
function scrollTo( Selector ){
$(Selector).before("<a name='scroll' id='scroll'></a>");
document.location.hash = 'scroll';
$('scroll').remove();
}
これは機能するはずです。jQueryが必要ですが、あなたはすでにそれを使用していると言っています。
Scriptaculous ( Prototypeの上に構築)を使用するとうまく実行できます。
new Effect.ScrollTo('someDiv',{...some parameters...})
プロトタイプのみよりも細かい制御が可能です (開始前の遅延、期間、およびコールバック イベント (afterFinish など) により、他の効果や選択したものをトリガーできます。スムーズかつ適切にスクロールできるため、ページが突然スクロールすることはありません)。ジャンプ。
ソース内の次の要素が何であるかがわかっている場合は、実際にはその要素 (location.href="#...") にジャンプすることができます。これは、ブラウザのネイティブの「スクロール」を使用し、ライブラリを使用しません。
Prototype を使用する利点がある場合は、 を使用できます$(element).scrollTo()
。
それ以外の場合、一般的な考え方は、要素の累積オフセットを計算し、それに応じwindow.scrollTop
て (およびwindow.scrollLeft
) を設定することです。