0

$('#content')ユーザーがdiv内でクリックしたかどうかを知りたいです。$('#content')ウィンドウが実際の位置より少し上または下に表示されるように、画面をスクロールできる場合があります。ユーザーのクリックが div 内にある場合、ブール値incanvasに true のフラグを立てます。

これは、クリック ハンドラー内にある関連コードです。

    $content = $('#content');
    ctop = $content.offset().top;
    cleft = $content.offset().left;
    cwidth =  parseInt($content.css('width').replace("px",""));
    cheight =  parseInt($content.css('height').replace("px",""));       
    eX = parseInt(e.clientX); eY = parseInt(e.clientY);

    inwidth = false;
    inheight = false;
    incanvas = false;

    if(eX >= cleft && eX <= (cleft+cwidth)) inwidth=true;
    if(eY >= ctop && eY <= (ctop+cheight)) inheight=true;

    console.log("inwidth: " + inwidth +", inheight: " + inheight);

    if(inwidth && inheight) incanvas = true;

            if(incanvas) alert ("Clicked within canvas."); else alert ("Missed."); 

contentこのコードは、ユーザーがページをスクロールしてdivがページを上下に移動した場合を除いて、完全に正常に機能します。私の変数を確実にし、その位置にスクロールを含めるためのクロスブラウザの方法は何ですか?ctopcleft

4

0 に答える 0