有一个JQuery插件,它结合了Draggable和Selectable

前端之家收集整理的这篇文章主要介绍了有一个JQuery插件,它结合了Draggable和Selectable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想实现一个网络界面与许多项目,可以选择和拖动来定位他们,组或单独。而是像Windows桌面,真的。

我们已经使用JQuery,所以添加这些将是第一选择。 JQuery UI Draggables和Selectables单独做我们想要的很多东西,但是不是真的一起工作,给我们正在寻找的那种效果

我完全不知所措的JQ插件网站(它的’流行’算法似乎并不非常有用),并将欢迎指导,以避免在这里的很多轮改造,最好的方法,因为我猜这个隐喻有已经完成。

解决方法

我也需要做同样的事情,我不想使用来自eyecon.ro的界面扩展。经过一番研究,我发现 Combining Selectables And Draggables Using jQuery UI.它被很好地告诉,但为了使代码片段运行你必须挖入它。我能够使它的工作。我稍微改变了,这是我的方式来完成。它需要修改在生产级别上使用,但我希望它有所帮助。
  1. // this creates the selected variable
  2. // we are going to store the selected objects in here
  3. var selected = $([]),offset = {top:0,left:0};
  4.  
  5. // initiate the selectable id to be recognized by UI
  6. $("#selectable").selectable({
  7. filter: 'div',});
  8.  
  9. // declare draggable UI and what we are going to be doing on start
  10. $("#selectable div").draggable({
  11. start: function(ev,ui) {
  12. selected = $(".ui-selected").each(function() {
  13. var el = $(this);
  14. el.data("offset",el.offset());
  15. });
  16.  
  17. if( !$(this).hasClass("ui-selected")) $(this).addClass("ui-selected");
  18. offset = $(this).offset();
  19. },drag: function(ev,ui) {
  20. var dt = ui.position.top - offset.top,dl = ui.position.left - offset.left;
  21.  
  22. // take all the elements that are selected expect $("this"),which is the element being dragged and loop through each.
  23. selected.not(this).each(function() {
  24. // create the variable for we don't need to keep calling $("this")
  25. // el = current element we are on
  26. // off = what position was this element at when it was selected,before drag
  27. var el = $(this),off = el.data("offset");
  28. el.css({top: off.top + dt,left: off.left + dl});
  29. });
  30. }
  31. });

CSS样式,以便能够看到发生了什么:

  1. #selectable { width: 100%; height: 100%;}
  2. #selectable div {
  3. background: #ffc;
  4. line-height: 25px;
  5. height: 25px;
  6. width: 200px;
  7. border: 1px solid #fcc;
  8. }
  9. #selectable div.ui-selected {
  10. background: #fcaf3e;
  11. }
  12. #selectable div.ui-selecting {
  13. background: #8ae234;
  14. }

HTML标记

  1. <div id="selectable">
  2. <div>item 1</div>
  3. <div>item 2</div>
  4. <div>item 3</div>
  5. <div>item 4</div>
  6. </div>

猜你在找的jQuery相关文章