アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。質問させてください。
クリックした位置に画面がスクロールするものを作っています。
今の状態だとクリックした位置にスクロールするのですが
ストップする位置が画面の左上で止まります。
これを画面の中央で止まるようにしたいのです。
ヒントをいただけませんでしょうか。宜しくお願い致します。

// 現在のスクロール量を取得
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 );

}

}

A 回答 (1件)

移動先をx,y


クアイアント領域の幅と高さをw,hとすると

x = x - w / 2;
y = y - h / 2;

でどうでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!