我希望能够创建一个控件,用户可以在div中单击,然后拖动鼠标,然后放开鼠标以指示他们想要的内容.(这是用于日历控件,因此用户将指示特定事件的时间长度)
看起来最好的方法是在父div上注册一个"mousedown"事件,然后在div上注册一个"mousemove"事件,直到触发"mouseup"事件."mousedown"和"mouseup"事件将定义时间范围的开始和结束,当我按照"mousemove"事件时,我可以动态地更改范围的大小,以便用户可以看到他们正在做什么.我的基础是谷歌日历中如何创建事件.
我遇到的问题是jQuery事件似乎只提供参考整个页面的可靠鼠标坐标信息.有没有办法辨别参考父元素的坐标是什么?
编辑:
下面是我正在尝试做的事情的照片:

可有人告诉我如何得到top和left位置的div或者span当没有指定的元素吗?
即:
<span id='11a' style='top:55px;' onmouseover="GetPos(this);">stuff</span>
<span id='12a' onmouseover="GetPos(this);">stuff</span>
Run Code Online (Sandbox Code Playgroud)
在上面,如果我这样做:
document.getElementById('11a').style.top
Run Code Online (Sandbox Code Playgroud)
55px返回值.但是,如果我尝试span'12a',那么什么都不会返回.
我在页面上有一堆div/ span我无法指定top/ left属性,但我需要div直接在该元素下显示.
除了偏移之外,是否有一种方法可以获取相对于文档的元素的客户端rect?getBoundingClientRect()获取相对于客户端浏览器的值.
我正在使用D3和jquery的height()或width()正在工作(我甚至尝试过做window.load()),但是offset()是.也不是javascripts .offset
return [$e.offset().top + $e.height()/2, $e.offset().left + $e.width()/2]
Run Code Online (Sandbox Code Playgroud)
$ e.height()和$ e.width()都返回0
这是一个SVG元素,我只是用它来编辑我的SVG.使用D3加载/处理SVG要容易得多.该项目与数据无关,它只是一张地图.