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






jQuery UI Draggable - Snap to element or grid

  
<!--
  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>

   
    
  








Related examples in the same category

1.jQuery UI Draggable - Constrain movement
2.jQuery UI Draggable - Cursor style
3.jQuery UI Draggable - Default functionality
4.jQuery UI Draggable - Delay start
5.jQuery UI Draggable - Events
6.jQuery UI Draggable - Handles
7.jQuery UI Draggable - Revert position
8.jQuery UI Draggable - Auto-scroll
9.jQuery UI Draggable + Sortable
10.jQuery UI Draggable - Visual feedback
11.Change cursor for draggable tag
12.Set cursor position for the draggable
13.Can only drag along with axis y
14.Drag delay
15.Drag along a grid
16.Add border to the draggable
17.Only draggable inside parent
18.Add dragging stopped event handler
19.revert: true (fly back)
20.Snap to another
21.start and stop events
22.Disable, enable and destroy the draggable object
23.Set the handles for all directions
24.Add knobHandles