1

左側にメニュー、右側にメイン コンテンツがある分割ページを作成しています。メニュー項目をクリックすると、メインコンテンツをその項目までスクロールしたい。

scrollTo()オフセット引数を取るJavaScript を見つけました。

<p>内の特定の要素または他の要素のオフセットを決定する方法はあります<div>か? または、オフセットを知らずに要素にスクロールする別の方法があるでしょうか?

編集

返信ありがとうございます。みんな似たような回答だったようです。しかし、これで問題が発生しました。offset().top(またはposition().top)現在のスクロール位置に応じて異なる値を返すようです。

私のjsFiddleはここにあります:http://jsfiddle.net/gBTW9/4/embedded/result/

一番上までスクロールしてセクション 4 を選択すると、期待どおりに動作します。しかし、スクロールすると、正しく機能しなくなります。誰でも何が起こっているかを見ることができますか。

4

5 に答える 5

1

jquery のメソッドoffsetposition stat が役立ちます。

また、要素などを受け入れる優れたscrollToプラグインもあります。

于 2013-01-16T15:58:41.780 に答える
1

HTMLネイティブ属性を使用できるのに、なぜ難しい方法を試すのですか??

オールドスクールと呼んでいますが、私はシンプルに保つのが好きです。

メニュー内:

使用する:

<ul>
    <li>
        <a href="#Paragraph1">Paragraph 1</a>
    </li>
</ul>

それ以外の

<ul>
    <li>Paragraph 1</li>
</ul>

これにより、セクションが Paragraph1 に等しい # (id) にジャンプします。

于 2013-01-22T14:31:18.860 に答える
1

私が誤解していなければ、特定の要素へのアニメーションスクロールが必要なだけで、ポートフォリオで行ったことに似ています。

左側のメニューが固定されていると仮定すると、スクロールしたい要素までページをスクロールするだけです。

$("html, body").animate({
   scrollTop: $('#element').offset().top 
});

特定の要素を別の要素の上に移動する必要がある場合:

$("#element1").animate({
   top: $('#element2').offset().top 
});
于 2013-01-16T16:23:38.030 に答える
1

を使用して、要素の垂直方向のオフセットを取得できます$('p').offset().top。これを使用してこれを組み合わせることができますscrollTop()

$('div').scrollTop($('p').offset().top);
于 2013-01-16T15:56:38.877 に答える
1

offset() ではなく position() を使用する必要があります。そのIDがわかれば

その段落タグの位置を簡単に見つけることができます

jQuery: position() と offset() の違い

于 2013-01-16T15:58:34.927 に答える