元素在屏幕上的绝对位置,包括(可能的)滚动元素

时间:2013-07-08 09:58:01

标签: javascript cross-browser scroll position

我想知道用户何时点击我的$('#content') div。 有时屏幕可以滚动,以便窗口显示$('#content')略高于或低于它的实际位置。如果用户的点击在div内,我将布尔值incanvas标记为真。

这是我在点击处理程序中获得的相关代码:

    $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包含位置中的滚动?

0 个答案:

没有答案