jQuery单击div的边框

And*_*rew 4 html javascript css jquery border

我有一个div,其中包含大量文本.我的问题是,是否有可能检测到div边框上的点击?

我想要完成的是如果用户点击底部边框(使用CSS设置4px宽的样式),div会一直滚动到底部.如果不添加更多标记,这是否可行?

Kin*_*ing 7

你可以试试这个:

$('div').click(function(e){
  if(e.offsetY >$(this).outerHeight() - 4){
    alert('clicked on the bottom border!');
  }
});
Run Code Online (Sandbox Code Playgroud)

演示.

.outerHeight()刚刚返回的内容(包括边界)的高度.在e.offsetY返回点击Y量相对于元素.注意outerHeight,如果传递bool true参数,它将包含margin在计算值中,默认值为false,所以它只返回content height + padding + border.

更新:看起来FireFox有自己的行为方式.您可以看到,单击时,将鼠标按住元素,知道相对于元素的单击点的坐标是非常自然和方便.不过貌似我们没有方便的方法来获得所谓的火狐,协调,因为e.offsetXe.offsetY根本不工作(没有任何价值).相反,你必须使用pageX,并pageY减去.offset().left.offset().top 分别获得相对于元素的坐标.

更新的演示

  • 真的很好回复. (2认同)