example-clone.html 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>ngDraggable</title>
  5. <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootswatch/2.3.1/spruce/bootstrap.min.css">
  6. <style>
  7. *{
  8. -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
  9. }
  10. [ng-drag], [ng-drag-clone]{
  11. -moz-user-select: -moz-none;
  12. -khtml-user-select: none;
  13. -webkit-user-select: none;
  14. -ms-user-select: none;
  15. user-select: none;
  16. }
  17. .drag-object, [ng-drag-clone], [ng-drop] [ng-drag]{
  18. width: 100px;
  19. height: 100px;
  20. background: rgba(255,0,0, 0.5);
  21. color:white;
  22. text-align: center;
  23. padding-top:40px;
  24. display: inline-block;
  25. margin:0 10px;
  26. cursor: move;
  27. position: relative;
  28. overflow: hidden;
  29. }
  30. .drag-object [ng-drag]{
  31. width: 100px;
  32. height: 100px;
  33. position: absolute;
  34. top:0; left:0;
  35. padding: 0;
  36. margin: 0;
  37. }
  38. [ng-drag-clone]{
  39. margin: 0;
  40. }
  41. [ng-drag].drag-over{
  42. border:solid 1px red;
  43. }
  44. [ng-drag].dragging{
  45. opacity: 0.5;
  46. }
  47. [ng-drop]{
  48. background: rgba(0,255,0, 0.5);
  49. text-align: center;
  50. width: 600px;
  51. height: 200px;
  52. padding-top:90px;
  53. display: block;
  54. margin:20px auto;
  55. position: relative;
  56. }
  57. [ng-drop].drag-enter{
  58. border:solid 5px red;
  59. }
  60. [ng-drop] span.title{
  61. display: block;
  62. position: absolute;
  63. top:50%;
  64. left:50%;
  65. width: 200px;
  66. height: 20px;
  67. margin-left: -100px;
  68. margin-top: -10px;
  69. }
  70. [ng-drop] div{
  71. position: relative;
  72. z-index: 2;
  73. }
  74. </style>
  75. </head>
  76. <body ng-app="ExampleApp">
  77. <div class="container" ng-controller="MainCtrl">
  78. <div class="row">
  79. <h1>ngDraggable Clone Example</h1>
  80. </div>
  81. <div class="drag-object" ng-repeat="obj in draggableObjects" ng-if="obj.allowClone !== false">
  82. {{obj.name}}
  83. <div ng-drag="true" ng-drag-data="obj"></div>
  84. </div>
  85. <div class="drag-object" style="background-color: transparent; overflow: visible">
  86. <div ng-drag="true" class="drag-object" ng-drag-data="draggableObjects[3]">{{draggableObjects[3].name}}</div>
  87. </div>
  88. <hr/>
  89. <div ng-drop="true" ng-drop-success="onDropComplete1($data,$event)">
  90. <span class="title">Drop area #1</span>
  91. <div ng-repeat="obj in droppedObjects1" ng-drag="true" ng-drag-data="obj" ng-drag-success="onDragSuccess1($data,$event)">
  92. {{obj.name}}
  93. </div>
  94. </div>
  95. <hr>
  96. </div>
  97. <div ng-drag-clone="">
  98. {{clonedData.name}}
  99. </div>
  100. <footer style="margin-top:2000px;">footer</footer>
  101. <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"></script>
  102. <script src="ngDraggable.js"></script>
  103. <script>
  104. angular.module('ExampleApp', ['ngDraggable']).
  105. controller('MainCtrl', function ($scope) {
  106. $scope.draggableObjects = [{name:'one'}, {name:'two'}, {name:'three'}, {name:'no-clone', allowClone:false}];
  107. $scope.droppedObjects1 = [];
  108. $scope.droppedObjects2= [];
  109. $scope.onDropComplete1=function(data,evt){
  110. var index = $scope.droppedObjects1.indexOf(data);
  111. if (index == -1)
  112. $scope.droppedObjects1.push(data);
  113. }
  114. $scope.onDragSuccess1=function(data,evt){
  115. var index = $scope.droppedObjects1.indexOf(data);
  116. if (index > -1) {
  117. $scope.droppedObjects1.splice(index, 1);
  118. }
  119. }
  120. $scope.onDragSuccess2=function(data,evt){
  121. var index = $scope.droppedObjects2.indexOf(data);
  122. if (index > -1) {
  123. $scope.droppedObjects2.splice(index, 1);
  124. }
  125. }
  126. $scope.onDropComplete2=function(data,evt){
  127. var index = $scope.droppedObjects2.indexOf(data);
  128. if (index == -1) {
  129. $scope.droppedObjects2.push(data);
  130. }
  131. }
  132. var inArray = function(array, obj) {
  133. var index = array.indexOf(obj);
  134. }
  135. });
  136. </script>
  137. </body>
  138. </html>