summaryrefslogtreecommitdiffstats
path: root/apps/it/static/js/ui/demos/draggable
diff options
context:
space:
mode:
authorFilipp Lepalaan <f@230.to>2014-02-19 18:02:09 +0200
committerFilipp Lepalaan <f@230.to>2014-02-19 18:02:09 +0200
commit75ad7e4bd7d69243e7e5281c2642f00478fb072d (patch)
treeeaaaf360902d369f42d94778aac8803db7973ce0 /apps/it/static/js/ui/demos/draggable
parentcfc7c3f52544af8a71d3fa3988a06fee200d2c24 (diff)
downloadpudding-75ad7e4bd7d69243e7e5281c2642f00478fb072d.tar.gz
pudding-75ad7e4bd7d69243e7e5281c2642f00478fb072d.tar.bz2
pudding-75ad7e4bd7d69243e7e5281c2642f00478fb072d.zip
Added tags, jquery UI
Diffstat (limited to 'apps/it/static/js/ui/demos/draggable')
-rw-r--r--apps/it/static/js/ui/demos/draggable/constrain-movement.html58
-rw-r--r--apps/it/static/js/ui/demos/draggable/cursor-style.html42
-rw-r--r--apps/it/static/js/ui/demos/draggable/default.html32
-rw-r--r--apps/it/static/js/ui/demos/draggable/delay-start.html38
-rw-r--r--apps/it/static/js/ui/demos/draggable/events.html70
-rw-r--r--apps/it/static/js/ui/demos/draggable/handle.html41
-rw-r--r--apps/it/static/js/ui/demos/draggable/index.html24
-rw-r--r--apps/it/static/js/ui/demos/draggable/revert.html37
-rw-r--r--apps/it/static/js/ui/demos/draggable/scroll.html44
-rw-r--r--apps/it/static/js/ui/demos/draggable/snap-to.html61
-rw-r--r--apps/it/static/js/ui/demos/draggable/sortable.html50
-rw-r--r--apps/it/static/js/ui/demos/draggable/visual-feedback.html70
12 files changed, 567 insertions, 0 deletions
diff --git a/apps/it/static/js/ui/demos/draggable/constrain-movement.html b/apps/it/static/js/ui/demos/draggable/constrain-movement.html
new file mode 100644
index 0000000..813fc50
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/constrain-movement.html
@@ -0,0 +1,58 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable - Constrain movement</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ .draggable { width: 90px; height: 90px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
+ #draggable, #draggable2 { margin-bottom:20px; }
+ #draggable { cursor: n-resize; }
+ #draggable2 { cursor: e-resize; }
+ #containment-wrapper { width: 95%; height:150px; border:2px solid #ccc; padding: 10px; }
+ h3 { clear: left; }
+ </style>
+ <script>
+ $(function() {
+ $( "#draggable" ).draggable({ axis: "y" });
+ $( "#draggable2" ).draggable({ axis: "x" });
+
+ $( "#draggable3" ).draggable({ containment: "#containment-wrapper", scroll: false });
+ $( "#draggable5" ).draggable({ containment: "parent" });
+ });
+ </script>
+</head>
+<body>
+
+<h3>Constrain movement along an axis:</h3>
+
+<div id="draggable" class="draggable ui-widget-content">
+ <p>I can be dragged only vertically</p>
+</div>
+
+<div id="draggable2" class="draggable ui-widget-content">
+ <p>I can be dragged only horizontally</p>
+</div>
+
+<h3>Or to within another DOM element:</h3>
+<div id="containment-wrapper">
+ <div id="draggable3" class="draggable ui-widget-content">
+ <p>I'm contained within the box</p>
+ </div>
+
+ <div class="draggable ui-widget-content">
+ <p id="draggable5" class="ui-widget-header">I'm contained within my parent</p>
+ </div>
+</div>
+
+<div class="demo-description">
+<p>Constrain the movement of each draggable by defining the boundaries of the draggable area. Set the <code>axis</code> option to limit the draggable's path to the x- or y-axis, or use the <code>containment</code> option to specify a parent DOM element or a jQuery selector, like 'document.'</p>
+</div>
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/cursor-style.html b/apps/it/static/js/ui/demos/draggable/cursor-style.html
new file mode 100644
index 0000000..e87c75d
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/cursor-style.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable - Cursor style</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ #draggable, #draggable2, #draggable3 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
+ </style>
+ <script>
+ $(function() {
+ $( "#draggable" ).draggable({ cursor: "move", cursorAt: { top: 56, left: 56 } });
+ $( "#draggable2" ).draggable({ cursor: "crosshair", cursorAt: { top: -5, left: -5 } });
+ $( "#draggable3" ).draggable({ cursorAt: { bottom: 0 } });
+ });
+ </script>
+</head>
+<body>
+
+<div id="draggable" class="ui-widget-content">
+ <p>I will always stick to the center (relative to the mouse)</p>
+</div>
+
+<div id="draggable2" class="ui-widget-content">
+ <p>My cursor is at left -5 and top -5</p>
+</div>
+
+<div id="draggable3" class="ui-widget-content">
+ <p>My cursor position is only controlled for the 'bottom' value</p>
+</div>
+
+<div class="demo-description">
+<p>Position the cursor while dragging the object. By default the cursor appears in the center of the dragged object; use the <code>cursorAt</code> option to specify another location relative to the draggable (specify a pixel value from the top, right, bottom, and/or left). Customize the cursor's appearance by supplying the <code>cursor</code> option with a valid CSS cursor value: default, move, pointer, crosshair, etc.</p>
+</div>
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/default.html b/apps/it/static/js/ui/demos/draggable/default.html
new file mode 100644
index 0000000..a1f7a91
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/default.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable - Default functionality</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ #draggable { width: 150px; height: 150px; padding: 0.5em; }
+ </style>
+ <script>
+ $(function() {
+ $( "#draggable" ).draggable();
+ });
+ </script>
+</head>
+<body>
+
+<div id="draggable" class="ui-widget-content">
+ <p>Drag me around</p>
+</div>
+
+<div class="demo-description">
+<p>Enable draggable functionality on any DOM element. Move the draggable object by clicking on it with the mouse and dragging it anywhere within the viewport.</p>
+</div>
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/delay-start.html b/apps/it/static/js/ui/demos/draggable/delay-start.html
new file mode 100644
index 0000000..5f45e42
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/delay-start.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable - Delay start</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ #draggable, #draggable2 { width: 120px; height: 120px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
+ </style>
+ <script>
+ $(function() {
+ $( "#draggable" ).draggable({ distance: 20 });
+ $( "#draggable2" ).draggable({ delay: 1000 });
+ $( ".ui-draggable" ).disableSelection();
+ });
+ </script>
+</head>
+<body>
+
+<div id="draggable" class="ui-widget-content">
+ <p>Only if you drag me by 20 pixels, the dragging will start</p>
+</div>
+
+<div id="draggable2" class="ui-widget-content">
+ <p>Regardless of the distance, you have to drag and wait for 1000ms before dragging starts</p>
+</div>
+
+<div class="demo-description">
+<p>Delay the start of dragging for a number of milliseconds with the <code>delay</code> option; prevent dragging until the cursor is held down and dragged a specifed number of pixels with the <code>distance</code> option. </p>
+</div>
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/events.html b/apps/it/static/js/ui/demos/draggable/events.html
new file mode 100644
index 0000000..9949a4c
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/events.html
@@ -0,0 +1,70 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable - Events</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ #draggable { width: 16em; padding: 0 1em; }
+ #draggable ul li { margin: 1em 0; padding: 0.5em 0; } * html #draggable ul li { height: 1%; }
+ #draggable ul li span.ui-icon { float: left; }
+ #draggable ul li span.count { font-weight: bold; }
+ </style>
+ <script>
+ $(function() {
+ var $start_counter = $( "#event-start" ),
+ $drag_counter = $( "#event-drag" ),
+ $stop_counter = $( "#event-stop" ),
+ counts = [ 0, 0, 0 ];
+
+ $( "#draggable" ).draggable({
+ start: function() {
+ counts[ 0 ]++;
+ updateCounterStatus( $start_counter, counts[ 0 ] );
+ },
+ drag: function() {
+ counts[ 1 ]++;
+ updateCounterStatus( $drag_counter, counts[ 1 ] );
+ },
+ stop: function() {
+ counts[ 2 ]++;
+ updateCounterStatus( $stop_counter, counts[ 2 ] );
+ }
+ });
+
+ function updateCounterStatus( $event_counter, new_count ) {
+ // first update the status visually...
+ if ( !$event_counter.hasClass( "ui-state-hover" ) ) {
+ $event_counter.addClass( "ui-state-hover" )
+ .siblings().removeClass( "ui-state-hover" );
+ }
+ // ...then update the numbers
+ $( "span.count", $event_counter ).text( new_count );
+ }
+ });
+ </script>
+</head>
+<body>
+
+<div id="draggable" class="ui-widget ui-widget-content">
+
+ <p>Drag me to trigger the chain of events.</p>
+
+ <ul class="ui-helper-reset">
+ <li id="event-start" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-play"></span>"start" invoked <span class="count">0</span>x</li>
+ <li id="event-drag" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-arrow-4"></span>"drag" invoked <span class="count">0</span>x</li>
+ <li id="event-stop" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-stop"></span>"stop" invoked <span class="count">0</span>x</li>
+ </ul>
+</div>
+
+<div class="demo-description">
+<p>Layer functionality onto the draggable using the <code>start</code>, <code>drag</code>, and <code>stop</code> events. Start is fired at the start of the drag; drag during the drag; and stop when dragging stops.</p>
+</div>
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/handle.html b/apps/it/static/js/ui/demos/draggable/handle.html
new file mode 100644
index 0000000..31dabc4
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/handle.html
@@ -0,0 +1,41 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable - Handles</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ #draggable, #draggable2 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
+ #draggable p { cursor: move; }
+ </style>
+ <script>
+ $(function() {
+ $( "#draggable" ).draggable({ handle: "p" });
+ $( "#draggable2" ).draggable({ cancel: "p.ui-widget-header" });
+ $( "div, p" ).disableSelection();
+ });
+ </script>
+</head>
+<body>
+
+<div id="draggable" class="ui-widget-content">
+ <p class="ui-widget-header">I can be dragged only by this handle</p>
+</div>
+
+<div id="draggable2" class="ui-widget-content">
+ <p>You can drag me around&hellip;</p>
+ <p class="ui-widget-header">&hellip;but you can't drag me by this handle.</p>
+</div>
+
+<div class="demo-description">
+<p>Allow dragging only when the cursor is over a specific part of the draggable. Use the <code>handle</code> option to specify the jQuery selector of an element (or group of elements) used to drag the object.</p>
+<p>Or prevent dragging when the cursor is over a specific element (or group of elements) within the draggable. Use the <code>cancel</code> option to specify a jQuery selector over which to "cancel" draggable functionality.</p>
+</div>
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/index.html b/apps/it/static/js/ui/demos/draggable/index.html
new file mode 100644
index 0000000..9385068
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/index.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable Demos</title>
+</head>
+<body>
+
+<ul>
+ <li><a href="default.html">Default functionality</a></li>
+ <li><a href="events.html">Events</a></li>
+ <li><a href="constrain-movement.html">Constrain movement</a></li>
+ <li><a href="delay-start.html">Delay start</a></li>
+ <li><a href="snap-to.html">Snap to element or grid</a></li>
+ <li><a href="scroll.html">Auto-scroll</a></li>
+ <li><a href="revert.html">Revert position</a></li>
+ <li><a href="visual-feedback.html">Visual feedback</a></li>
+ <li><a href="handle.html">Drag handle</a></li>
+ <li><a href="cursor-style.html">Cursor style</a></li>
+ <li><a href="sortable.html">Draggable + Sortable</a></li>
+</ul>
+
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/revert.html b/apps/it/static/js/ui/demos/draggable/revert.html
new file mode 100644
index 0000000..58282e7
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/revert.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable - Revert position</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ #draggable, #draggable2 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
+ </style>
+ <script>
+ $(function() {
+ $( "#draggable" ).draggable({ revert: true });
+ $( "#draggable2" ).draggable({ revert: true, helper: "clone" });
+ });
+ </script>
+</head>
+<body>
+
+<div id="draggable" class="ui-widget-content">
+ <p>Revert the original</p>
+</div>
+
+<div id="draggable2" class="ui-widget-content">
+ <p>Revert the helper</p>
+</div>
+
+<div class="demo-description">
+<p>Return the draggable (or it's helper) to its original location when dragging stops with the boolean <code>revert</code> option.</p>
+</div>
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/scroll.html b/apps/it/static/js/ui/demos/draggable/scroll.html
new file mode 100644
index 0000000..38b4404
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/scroll.html
@@ -0,0 +1,44 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable - Auto-scroll</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ #draggable, #draggable2, #draggable3 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
+ </style>
+ <script>
+ $(function() {
+ $( "#draggable" ).draggable({ scroll: true });
+ $( "#draggable2" ).draggable({ scroll: true, scrollSensitivity: 100 });
+ $( "#draggable3" ).draggable({ scroll: true, scrollSpeed: 100 });
+ });
+ </script>
+</head>
+<body>
+
+<div id="draggable" class="ui-widget-content">
+ <p>Scroll set to true, default settings</p>
+</div>
+
+<div id="draggable2" class="ui-widget-content">
+ <p>scrollSensitivity set to 100</p>
+</div>
+
+<div id="draggable3" class="ui-widget-content">
+ <p>scrollSpeed set to 100</p>
+</div>
+
+<div style='height: 5000px; width: 1px;'></div>
+
+<div class="demo-description">
+<p>Automatically scroll the document when the draggable is moved beyond the viewport. Set the <code>scroll</code> option to true to enable auto-scrolling, and fine-tune when scrolling is triggered and its speed with the <code>scrollSensitivity</code> and <code>scrollSpeed</code> options.</p>
+</div>
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/snap-to.html b/apps/it/static/js/ui/demos/draggable/snap-to.html
new file mode 100644
index 0000000..8b2a887
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/snap-to.html
@@ -0,0 +1,61 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable - Snap to element or grid</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ .draggable { width: 90px; height: 80px; padding: 5px; float: left; margin: 0 10px 10px 0; font-size: .9em; }
+ .ui-widget-header p, .ui-widget-content p { margin: 0; }
+ #snaptarget { height: 140px; }
+ </style>
+ <script>
+ $(function() {
+ $( "#draggable" ).draggable({ snap: true });
+ $( "#draggable2" ).draggable({ snap: ".ui-widget-header" });
+ $( "#draggable3" ).draggable({ snap: ".ui-widget-header", snapMode: "outer" });
+ $( "#draggable4" ).draggable({ grid: [ 20, 20 ] });
+ $( "#draggable5" ).draggable({ grid: [ 80, 80 ] });
+ });
+ </script>
+</head>
+<body>
+
+<div id="snaptarget" class="ui-widget-header">
+ <p>I'm a snap target</p>
+</div>
+
+<br style="clear:both" />
+
+<div id="draggable" class="draggable ui-widget-content">
+ <p>Default (snap: true), snaps to all other draggable elements</p>
+</div>
+
+<div id="draggable2" class="draggable ui-widget-content">
+ <p>I only snap to the big box</p>
+</div>
+
+<div id="draggable3" class="draggable ui-widget-content">
+ <p>I only snap to the outer edges of the big box</p>
+</div>
+
+<div id="draggable4" class="draggable ui-widget-content">
+ <p>I snap to a 20 x 20 grid</p>
+</div>
+
+<div id="draggable5" class="draggable ui-widget-content">
+ <p>I snap to a 80 x 80 grid</p>
+</div>
+
+<div class="demo-description">
+<p>Snap the draggable to the inner or outer boundaries of a DOM element. Use the <code>snap</code>, <code>snapMode</code> (inner, outer, both), and <code>snapTolerance</code> (distance in pixels the draggable must be from the element when snapping is invoked) options. </p>
+<p>Or snap the draggable to a grid. Set the dimensions of grid cells (height and width in pixels) with the <code>grid</code> option.</p>
+</div>
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/sortable.html b/apps/it/static/js/ui/demos/draggable/sortable.html
new file mode 100644
index 0000000..09bb6c4
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/sortable.html
@@ -0,0 +1,50 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable + Sortable</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <script src="../../ui/jquery.ui.sortable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ ul { list-style-type: none; margin: 0; padding: 0; margin-bottom: 10px; }
+ li { margin: 5px; padding: 5px; width: 150px; }
+ </style>
+ <script>
+ $(function() {
+ $( "#sortable" ).sortable({
+ revert: true
+ });
+ $( "#draggable" ).draggable({
+ connectToSortable: "#sortable",
+ helper: "clone",
+ revert: "invalid"
+ });
+ $( "ul, li" ).disableSelection();
+ });
+ </script>
+</head>
+<body>
+
+<ul>
+ <li id="draggable" class="ui-state-highlight">Drag me down</li>
+</ul>
+
+<ul id="sortable">
+ <li class="ui-state-default">Item 1</li>
+ <li class="ui-state-default">Item 2</li>
+ <li class="ui-state-default">Item 3</li>
+ <li class="ui-state-default">Item 4</li>
+ <li class="ui-state-default">Item 5</li>
+</ul>
+
+<div class="demo-description">
+<p>Draggables are built to interact seamlessly with <a href="http://jqueryui.com/sortable">sortables</a>.</p>
+</div>
+</body>
+</html>
diff --git a/apps/it/static/js/ui/demos/draggable/visual-feedback.html b/apps/it/static/js/ui/demos/draggable/visual-feedback.html
new file mode 100644
index 0000000..253a26d
--- /dev/null
+++ b/apps/it/static/js/ui/demos/draggable/visual-feedback.html
@@ -0,0 +1,70 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Draggable - Visual feedback</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../ui/jquery.ui.draggable.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ #draggable, #draggable2, #draggable3, #set div { width: 90px; height: 90px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
+ #draggable, #draggable2, #draggable3 { margin-bottom:20px; }
+ #set { clear:both; float:left; width: 368px; height: 120px; }
+ p { clear:both; margin:0; padding:1em 0; }
+ </style>
+ <script>
+ $(function() {
+ $( "#draggable" ).draggable({ helper: "original" });
+ $( "#draggable2" ).draggable({ opacity: 0.7, helper: "clone" });
+ $( "#draggable3" ).draggable({
+ cursor: "move",
+ cursorAt: { top: -12, left: -20 },
+ helper: function( event ) {
+ return $( "<div class='ui-widget-header'>I'm a custom helper</div>" );
+ }
+ });
+ $( "#set div" ).draggable({ stack: "#set div" });
+ });
+ </script>
+</head>
+<body>
+
+<h3 class="docs">With helpers:</h3>
+
+<div id="draggable" class="ui-widget-content">
+ <p>Original</p>
+</div>
+
+<div id="draggable2" class="ui-widget-content">
+ <p>Semi-transparent clone</p>
+</div>
+
+<div id="draggable3" class="ui-widget-content">
+ <p>Custom helper (in combination with cursorAt)</p>
+</div>
+
+<h3 class="docs">Stacked:</h3>
+<div id="set">
+ <div class="ui-widget-content">
+ <p>We are draggables..</p>
+ </div>
+
+ <div class="ui-widget-content">
+ <p>..whose z-indexes are controlled automatically..</p>
+ </div>
+
+ <div class="ui-widget-content">
+ <p>..with the stack option.</p>
+ </div>
+</div>
+
+<div class="demo-description">
+<p>Provide feedback to users as they drag an object in the form of a helper. The <code>helper</code> option accepts the values 'original' (the draggable object moves with the cursor), 'clone' (a duplicate of the draggable moves with the cursor), or a function that returns a DOM element (that element is shown near the cursor during drag). Control the helper's transparency with the <code>opacity</code> option.</p>
+<p>To clarify which draggable is in play, bring the draggable in motion to front. Use the <code>zIndex</code> option to set a higher z-index for the helper, if in play, or use the <code>stack</code> option to ensure that the last item dragged will appear on top of others in the same group on drag stop.</p>
+</div>
+</body>
+</html>