什么是拖拽的最佳方式;像谷歌地图中的地图一样放下js?

时间:2011-08-25 00:12:35

标签: javascript drag-and-drop

我正在寻找一种轻松而强大的拖拽方式。在Google地图中删除地图等内容。

我已经设法了,但我不确定它是不是最好的方法。我捕获了鼠标(和触摸)事件,如鼠标向上,鼠标按下和鼠标移动,并且每次更改每个div元素的x和y位置(位置:绝对)。它可以工作,但在大屏幕上的大多数浏览器中,它都不流畅。

那么有没有办法让它更高效?

第二个问题:当我拖动内容并且鼠标离开浏览器窗口时,它会停止拖动。是否有解决方案来阻止这种情况?

提前谢谢!

2 个答案:

答案 0 :(得分:0)

您的基本方法是正确的:您需要使用鼠标*事件处理程序来获得所需的功能。关于如何帮助表现,我有两个想法:

  • 使用特定于浏览器的事件。除了标准的事件外,IE(以及可能还有其他人)有一些自己的鼠标事件;使用这些可能会提高您的IE浏览器性能(但我不确定,因此您必须进行实验)

  • 委派活动。如果你有五十个要附加事件处理程序的元素,它会占用大量内存并影响性能。您可以做的是将这些事件处理程序附加到公共父元素(例如,您的“画布”DIV),然后使用传递给处理程序的事件详细信息来确定实际触发事件的元素。如果您想了解更多内容,基本原则称为事件冒泡。

这些只是几个想法(我能做的最好没有更多细节);希望他们能帮忙。

答案 1 :(得分:0)

看看这个图书馆。
http://openlayers.org/
你可以显示一些数据层。