スクロール位置を中央にしたい
こんにちは。質問させてください。
クリックした位置に画面がスクロールするものを作っています。
今の状態だとクリックした位置にスクロールするのですが
ストップする位置が画面の左上で止まります。
これを画面の中央で止まるようにしたいのです。
ヒントをいただけませんでしょうか。宜しくお願い致します。
// 現在のスクロール量を取得
function getScroll(){
var x, y;
if(document.all !== void 0){ // IE4, IE5, IE6
x = document.body.scrollLeft;
y = document.body.scrollTop;
}else if(document.layers !== void 0 || (navigator.userAgent.indexOf("Opera") != -1 || window.opera !== void 0)){ // NN4, Opera6
x = window.pageXOffset;
y = window.pageYOffset;
}else if(navigator.userAgent.indexOf("Gecko") != -1){ // NS6, Mozilla
x = window.scrollX;
y = window.scrollY;
}else{
x = y = 0;
}
return {x: x, y: y};
}
// スクロール始めのスクロール量
var SCROLL ;
var divCountScroller = 50 ; // 分割数
// 現在のスクロール位置から、指定座標までスクロールします
function scroller( x, y, count ){
if( count === void 0 ){
count = 0 ;
SCROLL = getScroll();
}
if( count++ < divCountScroller ){
var c = count/divCountScroller ;
var nx = SCROLL.x+( x-SCROLL.x )*( c+1/Math.PI*Math.sin( Math.PI*c ) );
var ny = SCROLL.y+( y-SCROLL.y )*( c+1/Math.PI*Math.sin( Math.PI*c ) );
window.scrollTo( nx, ny );
setTimeout( "scroller("+x+","+y+","+count+");", 30 );
}
}
お礼
ご回答ありがとうございます。 .net 2.0 以降でMaintainScrollPositionOnPostbackをtrueにすると そういう動きをするんですね。 勉強になります。 早速試してみます。