我想知道用户何时点击我的$('#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向上或向下移动页面。什么是跨浏览器方式,以确保我的变量ctop
和cleft
包含位置中的滚动?