2010-11-28 15 views
1

私は、このページからJavaScriptのサンプルを学んでいると私は、Windows 7上でIE 7を使用しています、このサンプルのjavascriptのポイント位置の問題

http://nofunc.org/AJAX_Star_Rating

、私は、関数document.onmousemoveのこの声明について混乱しています私は(下の画面のスナップショットを参照)、ブラウザ水平バーを下にスクロールする場合

var p = abPos($('star' + n)) 
    , x = XY(e) 
    , oX = x.X - p.X 
    , oY = x.Y - p.Y; s 
tar.num = o.id.substr(4); 

私の具体的な混乱があり、第五スターのため、XYのdescrease、しかしはpY(私は5位を測定するための星の上に私のマウスを動かします)変化しない。どんなアイデアが間違っている?このエラーを表示する

画面のスナップショット、http://i52.tinypic.com/4vhi7c.png

たとえば、私はブラウザ水平バーを下にスクロールする前に、第五スター、XY /はpYのために477分の492ですが、私は、下にスクロールした後、XY /はpY 380/477である。

document.body.scrollTopはスクロールダウンしても常に0です。私は以下の警告を使用してデバッグしています。

EDIT 1:事前に

document.onmousemove = function (e) { 
     var n = star.num; 

     alert (event.clientY + ' ' + document.body.scrollTop); 

おかげで、 ジョージ

+1

質問に答えることはできませんが、JavaScriptを学習している場合は、Google Chromeをインストールしてください。 IE7よりもはるかに優れた環境で、組み込みのデバッグツールや開発者ツールは、javascriptを使用するよりはるかに優れています。 – andynormancx

+0

ありがとうandynormancx! Chromeのデバッグツールの意味は? – George2

+0

主に、私はあなたがctrl-shift-Jを押すことによって得られるJavascriptコンソールを意味します。これにより、Javascriptをインタラクティブに実行し、ドキュメント構造を詳細に調べたり、ブレークポイントを設定したり、変数の内容を調べたり、呼び出しスタックを調べたり、コードを実行するためのプロファイルを実行したり、ダウンロードされているリソースを調べたりできます。 – andynormancx

答えて

1

コードで簡単に見てから、abPosは関係なく、スクロールの、文書内の要素の絶対位置を返します。

XY関数は、スクロール位置(つまり、ユーザーがスクロールしたピクセル数)が戻り値に既に組み込まれている「実際の」位置を返します。

スクロールすると「p」の値は変更されず、「x」の値は実際に変更されます。

なぜお尋ねしますか?スクリーンショットを見ると、間違ったことは何も見えませんでした。

とにかく、水平スクロールではなく、垂直スクロールを意味します。

+0

はい影、縦スクロールを意味します。お返事をありがとうございます。私の質問は、どのようにx.Yの絶対的な位置を取得することですか?垂直にスクロールするとp.Yが増えるので、x.Yを大きくします。 – George2

+1

@ George2手動で追加することができます。使用する場合は、 'document.documentElement.scrollTop'の値をp.Yに追加してください。 –

+0

感謝の影!しかし、私はそのdocument.body.scrollTopは常に0です。私はいつも0の値を取得する方法については私の元の記事のEDIT 1のセクションを参照してください。 – George2