web-dev-qa-db-ja.com

jQuery-アニメーションなしのScrollTop

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

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

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

[〜#〜] demo [〜#〜]
http://jsfiddle.net/DNNFF/9/

27
user970727

たぶん、あなたがアニメーションやファンシーなものを望んでいないなら、単にアンカーを使用してください

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

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

そして、あなたが使用している関数で

document.location.href="#top";

要素の前にアンカーを追加する関数を作成し、document.location事後、そのアンカーを削除します。

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

14
chepe263

これを試して:

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

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

18
Rory McCrossan

JQueryをスキップします。 JavaScriptを使用するだけです:

window.scroll(0, 0);
13
Jeroen Flamman

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

$(window).scrollTop(offTop)
10
sod

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

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 50); //50 added here as duartion

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

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').delay('800').animate({scrollTop: '+=' + offTop + 'px'}, 1);
1
Mr_DeLeTeD
var offTop = $('#box').offset().top;
$(window).scrollTop(parseInt(offTop))
0
user9717345