私は次のことをしようとしています:
- slideToggleで div を開く
- scrollTopを使用して、ユーザー ウィンドウを div の先頭に移動します。
- 次に、ユーザーがdivを閉じると、基本的にプロセスが逆になります。
プロセス全体がほぼ完了しましたが、1 つ問題があります。div を開くと、ウィンドウが div の一番上に移動しません。しかし、div を閉じると、ウィンドウが必要な場所に移動します。
ここに私のjQueryコードがあります:
// Find the location of a div (x, y)
function divLoc(object) {
var topCord = 0;
// If browser supports offsetParent
if(object.offsetParent) {
do {
topCord += object.offsetHeight;
}
while (object === object.offsetParent);
return topCord;
}
}
$("#open").click(function () {
var newInfo = document.getElementById("newInfo");
var location = divLoc(newInfo);
$("#newInfo").slideToggle('slow', function() {
$('html,body').animate({ scrollTop: location }, 2000);
});
});
そして、jsFiddle に問題の例をアップロードしました。