jQuery UI Draggable - Snap to element or grid : UI Draggable « jQuery « JavaScript Tutorial






<!--
  jQuery UI Effects Blind 1.7.2
 
  Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
  Dual licensed under the MIT (MIT-LICENSE.txt)
  and GPL (GPL-LICENSE.txt) licenses.
 
 
-->
<!doctype html>
<html lang="en">
<head>
  <title>jQuery UI Draggable - Snap to element or grid</title>
  <link type="text/css" href="js/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="js/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="js/ui/ui.core.js"></script>
  <script type="text/javascript" src="js/ui/ui.draggable.js"></script>
  <link type="text/css" href="js/demos.css" rel="stylesheet" />
  <style type="text/css">
  .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 type="text/javascript">
  $(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 class="demo">
  
<div id="snaptarget" class="ui-widget-header">
  <p>I'm a snap target</p>
</div>

<br 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><!-- End demo -->

<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><!-- End demo-description -->



</body>
</html>








30.142.UI Draggable
30.142.1.jQuery UI Draggable - Constrain movement
30.142.2.jQuery UI Draggable - Cursor style
30.142.3.jQuery UI Draggable - Default functionality
30.142.4.jQuery UI Draggable - Delay start
30.142.5.jQuery UI Draggable - Events
30.142.6.jQuery UI Draggable - Handles
30.142.7.jQuery UI Draggable - Revert position
30.142.8.jQuery UI Draggable - Auto-scroll
30.142.9.jQuery UI Draggable - Snap to element or grid
30.142.10.jQuery UI Draggable + Sortable
30.142.11.jQuery UI Draggable - Visual feedback
30.142.12.Change cursor for draggable tag
30.142.13.Set cursor position for the draggable
30.142.14.Can only drag along with axis y
30.142.15.Drag delay
30.142.16.Drag along a grid
30.142.17.revert: true (fly back)
30.142.18.Add border to the draggable
30.142.19.Only draggable inside parent
30.142.20.Snap to another
30.142.21.start and stop events
30.142.22.Add dragging stopped event handler
30.142.23.Disable, enable and destroy the draggable object
30.142.24.Set the handles for all directions
30.142.25.Add knobHandles