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

WindowsXP上のInternet Exploer 7とSsfariでは取得出来ますが。
WindowsXP上のFirefoxでは取得出来ません。

WindowsXP上のInternet Exploer 7とSsfariの場合。
event.yで取得 下は使用例(画面の上の方をダブリクリック:上にスクロール,画面の下の方をダブリクリック:下にスクロール の処理をしています)
if (event.y <= 200) scrollUp();if (event.y >= yt_k_ww) scrollDown();

WindowsXP上のFirefoxの場合。
http://www.openspc2.org/JavaScript/Ajax/Ajax_stu …により
y = evt.layerY; によりカーソルの位置の取得
window.alert("evt.clientY!!" + y); 取得内容の表示
を入れても「window.alert」が表示されない

上記の参照ホームページでは、y = evt.layerY;によりサンプルが起動しているようですが。
どのようにすれは、Firefoxの場合のカーソルの位置の取得方法を教えて下さい

A 回答 (2件)

ぐぐってみればいっぱい出てくると思う。



以下、適当に。(少し古いのも混ざっているかも…)
http://archiva.jp/web/javascript/get_mouse-posit …
http://www.red.oit-net.jp/tatsuya/java/cursor.htm
http://www.openspc2.org/JavaScript/Ajax/Ajax_stu …(質問者様がご提示のサイトかも)
    • good
    • 0
この回答へのお礼

回答有難う御座います。
http://archiva.jp/web/javascript/get_mouse-posit …については知りませんでした。
手抜き申し分けないですがNo2さんの お礼内容で動きました

お礼日時:2010/01/12 15:25

イベントオブジェクトの参照で躓いているようですね。


IEのwindow.eventは楽ですが、Fxの仕様を理解していないとハマります。

提示サイトのソースコードを下記に書き換えるとIEでも動作します。

//document.onmousemove = getMouseXY;

var element = document;
if (element.addEventListener) {
element.addEventListener("mousemove", getMouseXY, false);
} else {
element.attachEvent("onmousemove", getMouseXY); //IE
}

attachEventならFxと同様、第一引数でイベントオブジェクトを受け取れます。
「可能ならば」ですが、仕様差異への理解が深まるまでは
addEventListener/attachEventで実装し、第一引数でイベントオブジェクトを
受け取るように心がけるとよろしいかと。

document.onclick = hoge;
<body onclick="hoge(event)">

このように書かないといけない場合は

function hoge(event) {
alert(event);//イベントオブジェクト?
if (!event) event = window.event; // IE
alert("clientX: " + event.clientX + " clientY: " + event.clientY);
}

こんな感じでしょうか。
    • good
    • 0
この回答へのお礼

後指摘の内容をアレンジして作成しました。
/* ========================最初に onLoad イベントで初期化する=========== */
rc_ww = getWindowHeight(); // ウィンドウの高の取得
yt_k_ww = rc_ww - 200; // 画面下リック領域の設定

/* __ 画面の上の方をダブリクリック:上にスクロール,画面の下の方をクリック:下にスクロール___ */
window.document.ondblclick = scr_yt_k_ckd;
function scr_yt_k_ckd(evt){
if(br_s==0 || br_s==6 || br_s==20){ //IE,Ssfari,Google Chrome の処理
if (event.y <= 200) scrollUp();if (event.y >= yt_k_ww) scrollDown();}
else {
ay =evt.screenY;
if (ay <= 200) scrollUp();if (ay >= yt_k_ww) scrollDown();}}

IE,Ssfari,Google Chrome の場合、event.yで処理できたので処理しています。

お礼日時:2010/01/12 15:20

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