Build jQuery UI Draggable - Constrain movement in JavaScript

Description

The following code shows how to build jQuery UI Draggable - Constrain movement.

Example


<!-- Revised from demo code on http://jqueryui.com/ -->
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Draggable - Constrain movement</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<!-- www  .  ja  v a2 s  .c om-->
<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>

Click to view the demo

The code above generates the following result.

Build jQuery UI Draggable - Constrain movement in JavaScript
Home »
  Javascript Tutorial »
    jQuery UI »
      Draggable
Javascript Tutorial Draggable
Add border to the draggable in JavaScript
Add dragging stopped event handler in JavaS...
Build jQuery UI Draggable - Auto-scroll in ...
Build jQuery UI Draggable - Constrain movem...
Build jQuery UI Draggable - Cursor style in...
Build jQuery UI Draggable - Default functio...
Build jQuery UI Draggable - Delay start in ...
Build jQuery UI Draggable - Events in JavaS...
Build jQuery UI Draggable - Handles in Java...
Build jQuery UI Draggable - Revert position...
Build jQuery UI Draggable - Snap to element...
Build jQuery UI Draggable + Sortable in Jav...
Build jQuery UI Draggable - Visual feedback...
Build jQuery UI Position - Default function...
Build jQuery UI Position - Image Cycler in ...
Change cursor for draggable tag in JavaScri...
Handle drag and drop events: activate, deac...
Handle drag start and stop events in JavaSc...
Handle droppable accepted event in JavaScri...
Set Drag delay distance in JavaScript
Set cursor position for the draggable in Ja...
Set to Drag along a grid in JavaScript
Set to fly back in JavaScript
Set to only draggable along with axis y in ...
Set to only draggable inside parent in Java...
Snap to another for draggable in JavaScript