From ad1ab7c726359791ba8700e2c32678999656460a Mon Sep 17 00:00:00 2001 From: RubaXa Date: Thu, 19 Dec 2013 20:01:00 +0400 Subject: [PATCH] * redesign --- Sortable.js | 2 +- Sortable.min.js | 2 +- index.html | 372 ++++++++++++++++++++++++++---------------------- logo.png | Bin 0 -> 5062 bytes 4 files changed, 206 insertions(+), 170 deletions(-) create mode 100644 logo.png diff --git a/Sortable.js b/Sortable.js index e551775..246b1e7 100644 --- a/Sortable.js +++ b/Sortable.js @@ -250,7 +250,7 @@ ; - if( el.children.length === 0 || target == null ){ + if( el.children.length === 0 ){ el.appendChild(dragEl); } else if( target && (target !== dragEl) ){ diff --git a/Sortable.min.js b/Sortable.min.js index dfd7cb2..7d3fda7 100644 --- a/Sortable.min.js +++ b/Sortable.min.js @@ -1,2 +1,2 @@ /*! Sortable 0.1.0 - MIT | git://github.com/rubaxa/Sortable.git */ -!function(a){"use strict";"function"==typeof define&&define.amd?define("Sortable",[],a):window.Sortable=a()}(function(){"use strict";function a(a,c){this.el=a,this.options=c=c||{},c.group=c.group||Math.random(),c.handle=c.handle||null,c.draggable=c.draggable||a.children[0]&&a.children[0].nodeName||"li",c.ghostClass=c.ghostClass||"sortable-ghost",c.onAdd=b(this,c.onAdd||y),c.onUpdate=b(this,c.onUpdate||y),c.onRemove=b(this,c.onRemove||y),a[t]=c.group;for(var d in this)"_"===d.charAt(0)&&(this[d]=b(this,this[d]));e(a,"add",c.onAdd),e(a,"update",c.onUpdate),e(a,"remove",c.onRemove),e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),e(a,"dragover",this._onDragOver),e(a,"dragenter",this._onDragOver),A.push(this._onDragOver)}function b(a,b){var c=z.call(arguments,2);return b.bind?b.bind.apply(b,[a].concat(c)):function(){return b.apply(a,c.concat(z.call(arguments)))}}function c(a,b,c){if(a&&c){c=c||v,b=b.split(".");var d=b.shift().toUpperCase(),e=new RegExp("\\b("+b.join("|")+")\\b","g");do if(!(""!==d&&a.nodeName!=d||b.length&&((a.className+"").match(e)||[]).length!=b.length))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer.dropEffect="move",a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(" "+b+" ","").replace(/\s+/g," ");a.className=d+(c?" "+b:"")}}function h(a,b,c){if(a&&a.style){if(void 0===c)return v.defaultView&&v.defaultView.getComputedStyle?c=v.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];a.style[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;f>e;e++)c(d[e],e);return d}return[]}function j(a){return a.draggable=!1}var k,l,m,n,o,p,q,r,s,t="Sortable"+(new Date).getTime(),u=window,v=u.document,w=u.parseInt,x=u.CustomEvent,y=function(){},z=[].slice,A=[];return a.prototype={constructor:a,_applyEffects:function(){g(k,this.options.ghostClass,!0)},_onTapStart:function(a){var b=a.touches&&a.touches[0],f=(b||a).target,g=this.options;if(g.handle&&(f=c(f,g.handle,this.el)),f=c(f,g.draggable,this.el),f&&!k){r=a,f.draggable=!0,i(f,"a",j),i(f,"img",j),b&&(r={target:f,clientX:b.clientX,clientY:b.clientY},this._onDragStart(r,!0),a.preventDefault()),e(this.el,"dragstart",this._onDragStart),e(v,"dragover",d);try{v.selection?v.selection.empty():window.getSelection().removeAllRanges()}catch(h){}}},_emulateDragOver:function(){if(s){h(l,"display","none");var a=v.elementFromPoint(s.clientX,s.clientY),b=a,c=this.options.group,d=A.length;do if(b[t]===c){for(;d--;)A[d]({clientX:s.clientX,clientY:s.clientY,target:a,rootEl:b});break}while(b=b.parentNode);h(l,"display","")}},_onTouchMove:function(a){if(r){var b=a.touches[0],c=b.clientX-r.clientX,d=b.clientY-r.clientY;s=b,h(l,"webkitTransform","translate3d("+c+"px,"+d+"px,0)")}},_onDragStart:function(a,b){var c=a.target,d=a.dataTransfer;if(m=this.el,k=c,n=c.nextSibling,q=this.options.group,b){var f=c.getBoundingClientRect(),g=h(c);l=c.cloneNode(!0),h(l,"top",f.top-w(g.marginTop,10)),h(l,"left",f.left-w(g.marginLeft,10)),h(l,"width",f.right-f.left),h(l,"height",f.bottom-f.top),h(l,"opacity","0.8"),h(l,"position","fixed"),h(l,"zIndex","100000"),c.parentNode.insertBefore(l,c),e(v,"touchmove",this._onTouchMove),e(v,"touchend",this._onDrop),this._loopId=setInterval(this._emulateDragOver,100)}else d.effectAllowed="move",d.setData("Text",c.textContent),e(v,"drop",this._onDrop);setTimeout(this._applyEffects)},_onDragOver:function(a){if(q===this.options.group&&(void 0===a.rootEl||a.rootEl===this.el)){var b=this.el,d=c(a.target,this.options.draggable,b);if(0===b.children.length||null==d)b.appendChild(k);else if(d&&d!==k){o!==d&&(o=d,p=h(d));var e=d.getBoundingClientRect(),f=e.right-e.left,g=e.bottom-e.top,i=/left|right|inline/.test(p.cssFloat+p.display),j=!i&&(a.clientY-e.top)/g>.5||i&&(a.clientX-e.left)/f>.5,l=d.nextSibling;j&&!l?b.appendChild(k):d.parentNode.insertBefore(k,j?l:d)}}},_onDrop:function(a){if(clearInterval(this._loopId),f(v,"drop",this._onDrop),f(v,"dragover",d),f(this.el,"dragstart",this._onDragStart),f(v,"touchmove",this._onTouchMove),f(v,"touchend",this._onDrop),a){if(a.preventDefault(),k){var b={bubbles:!0,cancelable:!0,detail:k};g(k,this.options.ghostClass,!1),m.contains(k)?k.nextSibling!==n&&k.dispatchEvent(new x("update",b)):(m.dispatchEvent(new x("remove",b)),k.dispatchEvent(new x("add",b)))}l&&l.parentNode.removeChild(l),m=k=l=n=r=s=o=p=q=null}},destroy:function(){var a=this.el,b=this.options;f(a,"add",b.onAdd),f(a,"update",b.onUpdate),f(a,"remove",b.onRemove),f(a,"mousedown",this._onTapStart),f(a,"touchstart",this._onTapStart),f(a,"dragover",this._onDragOver),f(a,"dragenter",this._onDragOver),A.splice(A.indexOf(this._onDragOver),1),this._onDrop(),this.el=null}},a.utils={on:e,off:f,css:h,find:i,bind:b,closest:c,toggleClass:g},a.version="0.1.0",a}); \ No newline at end of file +!function(a){"use strict";"function"==typeof define&&define.amd?define("Sortable",[],a):window.Sortable=a()}(function(){"use strict";function a(a,c){this.el=a,this.options=c=c||{},c.group=c.group||Math.random(),c.handle=c.handle||null,c.draggable=c.draggable||a.children[0]&&a.children[0].nodeName||"li",c.ghostClass=c.ghostClass||"sortable-ghost",c.onAdd=b(this,c.onAdd||y),c.onUpdate=b(this,c.onUpdate||y),c.onRemove=b(this,c.onRemove||y),a[t]=c.group;for(var d in this)"_"===d.charAt(0)&&(this[d]=b(this,this[d]));e(a,"add",c.onAdd),e(a,"update",c.onUpdate),e(a,"remove",c.onRemove),e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),e(a,"dragover",this._onDragOver),e(a,"dragenter",this._onDragOver),A.push(this._onDragOver)}function b(a,b){var c=z.call(arguments,2);return b.bind?b.bind.apply(b,[a].concat(c)):function(){return b.apply(a,c.concat(z.call(arguments)))}}function c(a,b,c){if(a&&c){c=c||v,b=b.split(".");var d=b.shift().toUpperCase(),e=new RegExp("\\b("+b.join("|")+")\\b","g");do if(!(""!==d&&a.nodeName!=d||b.length&&((a.className+"").match(e)||[]).length!=b.length))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer.dropEffect="move",a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(/\s+/g," ").replace(" "+b+" ","");a.className=d+(c?" "+b:"")}}function h(a,b,c){if(a&&a.style){if(void 0===c)return v.defaultView&&v.defaultView.getComputedStyle?c=v.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];a.style[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;f>e;e++)c(d[e],e);return d}return[]}function j(a){return a.draggable=!1}var k,l,m,n,o,p,q,r,s,t="Sortable"+(new Date).getTime(),u=window,v=u.document,w=u.parseInt,x=u.CustomEvent,y=function(){},z=[].slice,A=[];return a.prototype={constructor:a,_applyEffects:function(){g(k,this.options.ghostClass,!0)},_onTapStart:function(a){var b=a.touches&&a.touches[0],f=(b||a).target,g=this.options;if(g.handle&&(f=c(f,g.handle,this.el)),f=c(f,g.draggable,this.el),f&&!k){r=a,f.draggable=!0,i(f,"a",j),i(f,"img",j),b&&(r={target:f,clientX:b.clientX,clientY:b.clientY},this._onDragStart(r,!0),a.preventDefault()),e(this.el,"dragstart",this._onDragStart),e(this.el,"dragend",this._onDrop),e(v,"dragover",d);try{v.selection?v.selection.empty():window.getSelection().removeAllRanges()}catch(h){}}},_emulateDragOver:function(){if(s){h(l,"display","none");var a=v.elementFromPoint(s.clientX,s.clientY),b=a,c=this.options.group,d=A.length;do if(b[t]===c){for(;d--;)A[d]({clientX:s.clientX,clientY:s.clientY,target:a,rootEl:b});break}while(b=b.parentNode);h(l,"display","")}},_onTouchMove:function(a){if(r){var b=a.touches[0],c=b.clientX-r.clientX,d=b.clientY-r.clientY;s=b,h(l,"webkitTransform","translate3d("+c+"px,"+d+"px,0)")}},_onDragStart:function(a,b){var c=a.target,d=a.dataTransfer;if(m=this.el,k=c,n=c.nextSibling,q=this.options.group,b){var f=c.getBoundingClientRect(),g=h(c);l=c.cloneNode(!0),h(l,"top",f.top-w(g.marginTop,10)),h(l,"left",f.left-w(g.marginLeft,10)),h(l,"width",f.right-f.left),h(l,"height",f.bottom-f.top),h(l,"opacity","0.8"),h(l,"position","fixed"),h(l,"zIndex","100000"),c.parentNode.insertBefore(l,c),e(v,"touchmove",this._onTouchMove),e(v,"touchend",this._onDrop),this._loopId=setInterval(this._emulateDragOver,100)}else d.effectAllowed="move",d.setData("Text",c.textContent),e(v,"drop",this._onDrop);setTimeout(this._applyEffects)},_onDragOver:function(a){if(q===this.options.group&&(void 0===a.rootEl||a.rootEl===this.el)){var b=this.el,d=c(a.target,this.options.draggable,b);if(0===b.children.length)b.appendChild(k);else if(d&&d!==k){o!==d&&(o=d,p=h(d));var e=d.getBoundingClientRect(),f=e.right-e.left,g=e.bottom-e.top,i=/left|right|inline/.test(p.cssFloat+p.display),j=!i&&(a.clientY-e.top)/g>.5||i&&(a.clientX-e.left)/f>.5,l=d.nextSibling;j&&!l?b.appendChild(k):d.parentNode.insertBefore(k,j?l:d)}}},_onDrop:function(a){if(clearInterval(this._loopId),f(v,"drop",this._onDrop),f(v,"dragover",d),f(this.el,"dragend",this._onDrop),f(this.el,"dragstart",this._onDragStart),f(v,"touchmove",this._onTouchMove),f(v,"touchend",this._onDrop),a){if(a.preventDefault(),l&&l.parentNode.removeChild(l),k){var b={bubbles:!0,cancelable:!0,detail:k};g(k,this.options.ghostClass,!1),m.contains(k)?k.nextSibling!==n&&k.dispatchEvent(new x("update",b)):(m.dispatchEvent(new x("remove",b)),k.dispatchEvent(new x("add",b)))}m=k=l=n=r=s=o=p=q=null}},destroy:function(){var a=this.el,b=this.options;f(a,"add",b.onAdd),f(a,"update",b.onUpdate),f(a,"remove",b.onRemove),f(a,"mousedown",this._onTapStart),f(a,"touchstart",this._onTapStart),f(a,"dragover",this._onDragOver),f(a,"dragenter",this._onDragOver),A.splice(A.indexOf(this._onDragOver),1),this._onDrop(),this.el=null}},a.utils={on:e,off:f,css:h,find:i,bind:b,closest:c,toggleClass:g},a.version="0.1.0",a}); \ No newline at end of file diff --git a/index.html b/index.html index 0be58e0..d43edc4 100644 --- a/index.html +++ b/index.html @@ -11,32 +11,48 @@ - - Fork me on GitHub -
-

- Sortable - -

-
— is a minimalist JavaScript library for modern browsers and touch devices (No jQuery).
- - -
-
-

List A

- -
    -
  • - - Catherine -
  • -
  • - - Polina -
  • -
  • - - Duke -
  • -
  • - - Adnrey -
  • -
  • - - Maxim -
  • -
-
-
-

List B

- -
    -
  • - - Ilya -
  • -
  • - - Anna -
  • -
-
+
+
+ +

The JavaScript library for modern browsers and touch devices (No jQuery).

-

 

-

 

-
-

Multi

+
+
+
List A
+
    +
  • бегемот
  • +
  • корм
  • +
  • антон
  • +
  • сало
  • +
  • железосталь
  • +
  • валик
  • +
  • кровать
  • +
  • краб
  • +
+
-
-
Group A
-
- -
+
+
List B
+
    +
  • казнить
  • +
  • ,
  • +
  • нельзя
  • +
  • помиловать
  • +
+
+ -
-
Group B
-
- +
+
+
Multi
+ +
+
Group A
+
+ +
-
-
-
Group C
-
- +
+
Group B
+
+ +
-
-
-

 

+
+
Group C
+
+ +
+
+ +
-
-

Code example

-
// Simple list
+
+	
+
+
Code example
+
// Simple list
 var list = document.getElementById("my-ui-list");
 new Sortable(list); // That's all.
 
@@ -256,7 +286,7 @@ var sort = new Sortable(container, {
 // ..
 sort.destroy();
 
- +

 

 

 

@@ -276,18 +306,18 @@ sort.destroy(); } - new Sortable(contacts, { - group: "contacts", - onAdd: function (evt){ console.log('onAdd.contacts:', evt.detail); }, - onUpdate: function (evt){ console.log('onUpdate.contacts:', evt.detail); }, - onRemove: function (evt){ console.log('onRemove.contacts:', evt.detail); } + new Sortable(foo, { + group: "words", + onAdd: function (evt){ console.log('onAdd.foo:', evt.detail); }, + onUpdate: function (evt){ console.log('onUpdate.foo:', evt.detail); }, + onRemove: function (evt){ console.log('onRemove.foo:', evt.detail); } }); - new Sortable(tags, { - group: "contacts", - onAdd: function (evt){ console.log('onAdd.tags:', evt.detail); }, - onUpdate: function (evt){ console.log('onUpdate.tags:', evt.detail); }, - onRemove: function (evt){ console.log('onRemove.tags:', evt.detail); } + new Sortable(bar, { + group: "words", + onAdd: function (evt){ console.log('onAdd.bar:', evt.detail); }, + onUpdate: function (evt){ console.log('onUpdate.bar:', evt.detail); }, + onRemove: function (evt){ console.log('onRemove.bar:', evt.detail); } }); @@ -303,7 +333,9 @@ sort.destroy(); })(); - function setNoiseBackground(el, color, width, height, opacity){ + + // Background + function setNoiseBackground(el, width, height, opacity){ var canvas = document.createElement("canvas"); var context = canvas.getContext("2d"); @@ -318,11 +350,15 @@ sort.destroy(); } } - el.style.background = "url(" + canvas.toDataURL("image/png") + "), "+color; + el.style.background = "url(" + canvas.toDataURL("image/png") + ")"; } - // Usage - setNoiseBackground(document.getElementsByTagName('body')[0], "linear-gradient(to bottom, #E1E2D1 0%, #5AABA5 100%)", 50, 50, 0.03); + + + window.onload = function (){ + // Usage + setNoiseBackground(document.getElementsByTagName('body')[0], 50, 50, 0.01); + }; @@ -368,16 +404,16 @@ sort.destroy(); pre { border: 0; - box-shadow: 0 1px 2px rgba(0,0,0,0.4); background-color: #fff; } pre code { display: block; color: #4d4d4c; + font-size: 15px; font-family: Menlo, Monaco, Consolas, monospace; line-height: 1.5; - padding: 10px; + padding: 30px; } diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..76cc77c3474f3352898bb6a6effe6795c359b1cc GIT binary patch literal 5062 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 literal 0 HcmV?d00001