sortable-list.html 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>jquery.pep demo - sortable w/ double click/tap </title>
  6. <!-- Load local jQuery. -->
  7. <script src="../libs/jquery/jquery.js"></script>
  8. <script src="../libs/modernizr.min.js"></script>
  9. <!-- Load local lib and tests. -->
  10. <script src="../src/jquery.pep.js"></script>
  11. <script type="text/javascript">
  12. $(document).ready(function(){
  13. // Grab our elements
  14. var $ul = $('ul');
  15. var $li = $ul.children('li');
  16. // Pep 'em
  17. $('li').pep({
  18. place: false,
  19. axis: 'y',
  20. shouldEase: false,
  21. stop: function(ev, obj){
  22. // Grab the list items and sort them based on
  23. // distance from the top
  24. $li.sort(function(a,b) { return ( $(a).position().top - $(b).position().top ) });
  25. $ul.append($li);
  26. // Remove CSS transformations so the list item
  27. // fits nicely into place.
  28. var matrix = obj.matrixToArray( obj.matrixString() );
  29. var x = -1*matrix[4]
  30. var y = -1*matrix[5]
  31. obj.moveToUsingTransforms( x,y );
  32. obj.$el.css({ position: 'relative' })
  33. .removeClass('activated');
  34. obj.toggle(false)
  35. }
  36. });
  37. // ..... then turn all peps off
  38. $.pep.toggleAll();
  39. // Double Tap Logic
  40. var startEvent = Modernizr.touch ? 'touchstart' : 'mousedown';
  41. var stopEvent = Modernizr.touch ? 'touchend' : 'mouseup';
  42. var time = false;
  43. var doubleTapDelay = 300;
  44. $li.on( startEvent , function(e){
  45. var $this = $(this);
  46. if ( time && (new Date().getTime() - time) < doubleTapDelay ) {
  47. $this.addClass('activated')
  48. .data('plugin_pep')
  49. .toggle(true);
  50. }
  51. time = new Date().getTime();
  52. });
  53. });
  54. </script>
  55. <style type="text/css">
  56. body {
  57. font-family: Helvetica;
  58. text-align: center;
  59. margin: 0;
  60. padding: 0;
  61. }
  62. body h1{
  63. color: white;
  64. background: black;
  65. margin: 0; padding: 10px 0;
  66. }
  67. body ul {
  68. margin: 0;
  69. padding: 0;
  70. }
  71. body ul li {
  72. background: #eee;
  73. list-style-type: none;
  74. padding: 40px 0;
  75. border-bottom: 1px solid #bbb;
  76. cursor: move;
  77. width: 100%;
  78. }
  79. body ul li.pep-start{
  80. box-shadow: 0 5px 5px rgba(0,0,0,0.2), 0 -5px 5px rgba(0,0,0,0.2);
  81. z-index: 999999;
  82. }
  83. body ul li.activated{
  84. background: white;
  85. }
  86. </style>
  87. </head>
  88. <body>
  89. <h1>Double tap/click to sort</h1>
  90. <ul>
  91. <li>
  92. 0. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  93. </li>
  94. <li>
  95. 1. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  96. </li>
  97. <li>
  98. 2. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  99. </li>
  100. <li>
  101. 3. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  102. </li>
  103. <li>
  104. 4. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  105. </li>
  106. <li>
  107. 5. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  108. </li>
  109. <li>
  110. 6. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  111. </li>
  112. <li>
  113. 7. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  114. </li>
  115. <li>
  116. 8. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  117. </li>
  118. <li>
  119. 9. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  120. </li>
  121. <li>
  122. 10. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  123. </li>
  124. <li>
  125. 11. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  126. </li>
  127. <li>
  128. 12. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  129. </li>
  130. <li>
  131. 13. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  132. </li>
  133. <li>
  134. 14. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  135. </li>
  136. <li>
  137. 15. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  138. </li>
  139. </ul>
  140. </body>
  141. </html>