我正在努力写一个拖累和放大器使用HTML& amp; JavaScript的。我的意思是会有一组具有任意绝对位置的物体。我希望能够将光标拖到它们布局的区域上。可以将其视为RTS策略(选择单位)或任何矢量图形编辑器(选择移动它们和编辑的对象)。
首先,我了解Google和Google的前几页中出现的内容。所以。因此,我绝不会要求为我搜索这些内容并在此处发布一些随机链接。
我能找到的大部分解决方案都存在某些缺陷。主要问题是抑制实际文本选择,这似乎违背了Web浏览器的本质。一些代码片段导致选择闪烁,我发现非常烦人。有些在所有主流浏览器中都表现不佳。
我正在询问您实际使用过的代码/库的建议,或者看到成功使用过的代码/库的建议。
第二件事是,我想真正理解抑制选择背后的JavaScript内部。如何在理论上做到这一点。是否有任何非黑客的方法来实现这一目标?
我能找到的最接近的是: http://view.jquery.com/tags/ui/1.5b2/demos/ui.selectable.html
然而它似乎与jQuery UI紧密结合,后者又需要jQuery 1.3.x而我真的很期待使用jQuery 1.5
答案 0 :(得分:22)
抱歉我的英语。我正在使用这个库进行拖放操作,这很棒。不确定这是否是你需要的,但它可能有所帮助:
http://threedubmedia.com/code/event/drop/demo/selection
答案 1 :(得分:1)
主要问题是抑制实际文本选择,这似乎与Web浏览器的本质不符。
您正在寻找的功能是e.preventDefault();
$("#inputform").mousedown(function(e){
e.preventDefault();
//console.log('mousedown');
}).mouseup(function(e){
e.preventDefault();
//console.log('mouseup');
});
这只是解决了文本选择的问题。我可以在网上看到各种拖动选择js scritps,但不知怎的,我无法使它们工作。
答案 2 :(得分:1)
如果我的问题得到解决,我不能100%肯定。但我做了两个插件来处理你认为我描述的情况。它们不需要任何依赖,因此不需要jQuery或者其他任何东西。即使您不使用它们,代码也有详细记录,并且可以通过编写自己的代码来帮助您。
对于拖放,有dragNdrop
对于选择机制,有DragSelect
欢迎你。希望有所帮助!
答案 3 :(得分:0)
即使您希望使用jquery 1.5,我仍然建议您查看jquery-ui Draggable选项(从我解释您的愿望的方式来看,这似乎就像您试图完成的那样)。
http://jqueryui.com/demos/draggable/
jquery-ui总是很快赶上jquery的最新版本,并且在很多情况下都可以正常工作。我发现jquery-ui比我发现的任何其他附加组件更容易与jquery保持同步。
关于想知道如何做到这一点,你可以很容易地探索jquery的未压缩核心。它有很好的文档记录,非常简单易读。