29

アニメーションなしでスクロールトップを使用するにはどうすればよいですか

このコードは機能します:

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 400);

そして、ここに私の(機能しないソリューション)があります:

$("#mainCt").scrollTop('+=' + offTop + 'px');                 // doesn't work
$("#mainCt").scrollTop('+='+offTop);                          // doesn't work
hhh = setTimeout(' $("#mainCt").scrollTop('+offTop+');',800); // doesn't work

デモ
http://jsfiddle.net/DNNFF/9/

4

8 に答える 8

24

これを試して:

var offTop = $('#box').offset().top - 43;
$('#mainCt').scrollTop(offTop);

scrollTopプロパティは整数のみを受け入れ、接尾辞や単位は必要ありません。

于 2012-04-13T15:27:25.470 に答える
18

アニメーションや派手なものが必要ない場合は、アンカーを使用してください

<a name="top"></a>

スクロールする必要がある場所に配置します

そして、あなたが呼び出している関数で使用します

document.location.href="#top";

要素の前にアンカーを追加する関数を作成し、それを実行してdocument.location後でそのアンカーを削除することもできます。

http://jsfiddle.net/fSrxr/1/

于 2012-04-16T22:11:37.767 に答える
12

http://api.jquery.com/scrollTop/

$(window).scrollTop(offTop)
于 2012-04-13T15:28:12.843 に答える
3

短い時間で使ってみませんか。私はそれをいじりました、そしてそれはアニメーションを持っていませんでした。アニメーションを見る時間がないので、アニメーションはまったくありません。

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 50); //50 added here as duartion
于 2012-04-18T04:25:28.473 に答える
1

デュレーションで遊べませんか?

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').delay('800').animate({scrollTop: '+=' + offTop + 'px'}, 1);
于 2012-04-13T15:29:21.337 に答える