2

<ul>s の長いリストをコンテナ<li>内にラップ<div>してスクロール可能にするインタラクションがあります。

<li>ここで、リストを特定のアイテムをトップ アイテムとして表示する状態に遷移させます。プロパティを使用してこれを行うことはできませんscrollTop。項目がコンテナーの上部の目的の位置にスクロールできるようにするには、項目が下にある可能性があるためです。

そのため、ul の相対的な上部位置を目的の値に設定しました。

この jsFiddle をご覧ください: http://jsfiddle.net/pJfNp/13/

<ul>IE8 と 9 を除くすべてのブラウザで、アクティブ/赤い項目が上部に表示されますが、Internet Explorer は の下部をから「切り離す」ことができないようで<div>、何らかの形でそこに固定されたままになります。scrollTop最初のアイテムとして表示するために使用しようとした場合、どうなるでしょうか。

私は似たようなことをする方法についての新しいアイデアを受け入れています!

4

1 に答える 1

1

IE8でテストされ、IE9でも動作するはずです:)

jsFiddle デモ

var liHeight = $('li.active').height();
$('ul').height( $('ul').height() + (liHeight*3) );
var activePos = $('li.active').position().top;
$('div').animate({scrollTop:activePos},1000);

最後のものを時々表示する必要がある場合は、li余分な 3 が必要であることを意味するli heightsので、3 を掛けて、結果をul要素の高さに追加します。
アニメ化するよりもscrollTop、あなたのdiv

于 2012-08-19T15:06:25.610 に答える