Googleがやりそうにないから
野球の成績入力用ウェブアプリケーションとかおそらくGoogleは作らないだろうから、JavaScriptとかDHTMLとかAjaxとか使って使いやすさ重視で作ってみようかと思った次第。理想とするインタフェースはGoogle Calendarだったりします。
なのでまずは「クリックした座標を取得する」というのを調べてました。これはIEの場合とFireFoxの場合とでやり方が異なるらしいです。IEの場合はこんな感じです。
if (window.createPopup) {
x = event.clientX;
y = event.clientY;
if (y + 200 > document.body.clientHeight) {
y -= 180;
}
}
x = event.clientX;
y = event.clientY;
if (y + 200 > document.body.clientHeight) {
y -= 180;
}
}
これをonClickで呼び出す関数の中に書きます。window.createPopupというやつはIE5.5以降かどうかを判定できるらしいです。document.body.clientHeightでウィンドウの表示領域の高さを取得して、y座標の調節に使ってます。レイヤーがウィンドウからはみ出ないようにするための処理です。
FireFoxの場合はこうなります。
window.onmousedown = getMousePoint;
function getMousePoint(evt) {
x = evt.clientX;
y = evt.clientY;
if (y + 200 > window.innerHeight) {
y -= 180;
}
}
function getMousePoint(evt) {
x = evt.clientX;
y = evt.clientY;
if (y + 200 > window.innerHeight) {
y -= 180;
}
}
window.onmousedownにイベント発生時の処理を記述した関数を渡します(という表現でいいのかな?)。ウィンドウの表示領域の高さは、FireFoxの場合はwindow.innerHeightで取得します。
作る欲求がいつまで続くか分かりませんが、まぁコツコツやります。
【参考】
・http://www.tryhp.net/dynamic07.htm
・http://www.openspc2.org/JavaScript/Ajax/Ajax_study/chapter05/013/index.html
コメントを残す