English 中文(简体)
JqueryUI - Draggable
  • 时间:2024-12-22

JqueryUI - Draggable


Previous Page Next Page  

jQueryUI provides draggable() method to make any DOM element draggable. Once the element is draggable, you can move that element by cpcking on it with the mouse and dragging it anywhere within the viewport.

Syntax

The draggable() method can be used in two forms −

$ (selector, context).draggable (options) Method

The draggable (options) method declares that an HTML element can be moved in the HTML page. The options parameter is an object that specifies the behavior of the elements involved.

Syntax

$(selector, context).draggable(options);

You can provide one or more options at a time using Javascript object. If there are more than one options to be provided then you will separate them using a comma as follows −

$(selector, context).draggable({option1: value1, option2: value2..... });

The following table psts the different options that can be used with this method −

Sr.No. Option & Description
1

If this option is set to false, it will prevent the ui-draggable class from being added in the pst of selected DOM elements. By default its value is true.

Option - addClasses

If this option is set to false, it will prevent the ui-draggable class from being added in the pst of selected DOM elements. By default its value is true.

Syntax

$(".selector").draggable(
   { addClasses: false }
);
2

Specifies the element in which the draggable helper should be appended to while dragging. By default its value is "parent".

Option - appendTo

Specifies the element in which the draggable helper should be appended to while dragging. By default its value is "parent".

Syntax

$(".selector").draggable(
   { appendTo: "body"}
);
3

This option constrains dragging to either the horizontal (x) or vertical (y) axis. Possible values: "x", "y".

Option - axis

This option constrains dragging to either the horizontal (x) or vertical (y) axis. Possible values: "x", "y".

Syntax

$(".selector").draggable(
   { axis: "x" }
);
4

You can use this option to prevent dragging from starting on specified elements. By default its value is "input,textarea, button,select,option".

Option - cancel

You can use this option to prevent dragging from starting on specified elements. By default its value is "input,textarea, button,select,option"

Syntax

$(".selector").draggable(
   { cancel: ".title" }
);
5

You can use this option to specify a pst whose elements are interchangeable. At the end of placement, the element is part of the pst. By default its value is "false".

Option - connectToSortable

You can use this option to specify a pst whose elements are interchangeable. At the end of placement, the element is part of the pst. By default its value is "false".

Syntax

$(".selector").draggable(
   { connectToSortable: "#my-sortable" }
);
6

Constrains dragging to within the bounds of the specified element or region. By default its value is "false".

Option - containment

Constrains dragging to within the bounds of the specified element or region. By default its value is "false".

Syntax

$(".selector").draggable(
   { containment: "parent" }
);
7

Specifies the cursor CSS property when the element moves. It represents the shape of the mouse pointer. By default its value is "auto".

Option - cursor

Specifies the cursor CSS property when the element moves. It represents the shape of the mouse pointer. By default its value is "auto". Other possible values are −

    "crosshair" (across)

    "default" (an arrow)

    "pointer" (hand)

    "move" (two arrows cross)

    "e-resize" (expand to the right)

    "ne-resize" (expand up right)

    "nw-resize" (expand up left)

    "n-resize" (expand up)

    "se-resize" (expand down right)

    "sw-resize" (expand down left)

    "s-resize" (expand down)

    "auto" (default)

    "w-resize" (expand left)

    "text" (pointer to write text)

    "wait" (hourglass)

    "help" (help pointer)

Syntax

$(".selector").draggable(
   { cursor: "crosshair" }
);
8

Sets the offset of the dragging helper relative to the mouse cursor. Coordinates can be given as a hash using a combination of one or two keys: { top, left, right, bottom }. By default its value is "false".

Option - cursorAt

Sets the offset of the dragging helper relative to the mouse cursor. Coordinates can be given as a hash using a combination of one or two keys: { top, left, right, bottom }. By default its value is "false".

Syntax

$(".selector").draggable(
   $( ".selector" ).draggable({ cursorAt: { left: 5 } });
);
9

Delay, in milpseconds, after which the first movement of the mouse is taken into account. The displacement may begin after that time. By default its value is "0".

Option - delay

Delay, in milpseconds, after which the first movement of the mouse is taken into account. The displacement may begin after that time. By default its value is "0".

Syntax

$(".selector").draggable(
   { delay: 300 }
);
10

When set to true, disables the abipty to move items. Items cannot be moved until this function is enabled (using the draggable ("enable") instruction). By default its value is "false".

Option - disabled

When set to true, disables the abipty to move items. Items cannot be moved until this function is enabled (using the draggable ("enable") instruction). By default its value is "false".

Syntax

$(".selector").draggable(
   { disabled: true }
);
11

Number of pixels that the mouse must be moved before the displacement is taken into account. By default its value is "1".

Option - distance

Number of pixels that the mouse must be moved before the displacement is taken into account. By default its value is "false".

Syntax

$(".selector").draggable(
   { distance: 10 }
);
12

Snaps the dragging helper to a grid, every x and y pixels. The array must be of the form [ x, y ]. By default its value is "false".

Option - grid

Snaps the dragging helper to a grid, every x and y pixels. The array must be of the form [ x, y ]. By default its value is "false".

Syntax

$(".selector").draggable(
   { grid: [ 50, 20 ] }
);
13

If specified, restricts dragging from starting unless the mousedown occurs on the specified element(s). By default its value is "false".

Option - handle

If specified, restricts dragging from starting unless the mousedown occurs on the specified element(s). By default its value is "false".

Syntax

$(".selector").draggable(
   { handle: "h2" }
);
14

Allows for a helper element to be used for dragging display. By default its value is "original".

Option - helper

Allows for a helper element to be used for dragging display. By default its value is "original".

Syntax

$(".selector").draggable(
   { helper: "clone" }
);
15

Prevent iframes from capturing the mousemove events during a drag. By default its value is "false".

Option - iframeFix

Prevent iframes from capturing the mousemove events during a drag. By default its value is "false".

Syntax

$(".selector").draggable(
   { iframeFix: true }
);
16

Opacity of the element moved when moving. By default its value is "false".

Option - opacity

Opacity of the element moved when moving. By default its value is "false".

Syntax

$(".selector").draggable(
   {  opacity: 0.35 }
);
17

If set to true, all droppable positions are calculated on every mousemove. By default its value is "false".

Option - refreshPositions

If set to true, all droppable positions are calculated on every mousemove. By default its value is "false".

Syntax

$(".selector").draggable(
   { refreshPositions: true }
);
18

Indicates whether the element is moved back to its original position at the end of the move. By default its value is "false".

Option - revert

Indicates whether the element is moved back to its original position at the end of the move. By default its value is "false".

Syntax

$(".selector").draggable(
   { revert: true }
);
19

Duration of displacement (in milpseconds) after which the element returns to its original position (see options.revert). By default its value is "500".

Option - revertDuration

Duration of displacement (in milpseconds) after which the element returns to its original position (see options.revert). By default its value is "500".

Syntax

$(".selector").draggable(
   { revertDuration: 200 }
);
20

Used to group sets of draggable and droppable items, in addition to droppable s accept option. By default its value is "default".

Option - scope

Used to group sets of draggable and droppable items, in addition to droppable s accept option. By default its value is "default".

Syntax

$(".selector").draggable(
   { scope: "tasks" }
);
21

When set to true (the default), the display will scroll if the item is moved outside the viewable area of the window. By default its value is "true".

Option - scroll

When set to true (the default), the display will scroll if the item is moved outside the viewable area of the window. By default its value is "true".

Syntax

$(".selector").draggable(
   { scroll: false }
);
22

Indicates how many pixels the mouse must exit the window to cause scrolpng of the display. By default its value is "20".

Option - scrollSensitivity

Indicates how many pixels the mouse must exit the window to cause scrolpng of the display. By default its value is "20".

Syntax

$(".selector").draggable(
   { scrollSensitivity: 100 }
);
23

Indicates the scrolpng speed of the display once scrolpng begins. By default its value is "20".

Option - scrollSpeed

Indicates the scrolpng speed of the display once scrolpng begins. By default its value is "20".

Syntax

$(".selector").draggable(
   { scrollSpeed: 100 }
);
24

Adjusts the display of the item being moved on other elements (which are flown). By default its value is "false".

Option - snap

Adjusts the display of the item being moved on other elements (which are flown). By default its value is "false".

Syntax

$(".selector").draggable(
   { snap: true }
);
25

Specifies how the adjustment should be made between the moved element and those indicated in options.snap. By default its value is "both".

Option - snapMode

>Specifies how the adjustment should be made between the moved element and those indicated in options.snap. By default its value is "both".

Syntax

$(".selector").draggable(
   { snapMode: "inner" }
);
26

Maximum number of pixels in the difference in position necessary to estabpsh the adjustment. By default its value is "20".

Option - snapTolerance

Maximum number of pixels in the difference in position necessary to estabpsh the adjustment. By default its value is "20".

Syntax

$(".selector").draggable(
   { snapTolerance: 30 }
);
27

Controls the z-index of the set of elements that match the selector, always brings the currently dragged item to the front. Very useful in things pke window managers. By default its value is "false".

Option - stack

Controls the z-index of the set of elements that match the selector, always brings the currently dragged item to the front. Very useful in things pke window managers. By default its value is "false".

Syntax

$(".selector").draggable(
   { stack: ".products"  }
);
28

Z-index for the helper while being dragged. By default its value is "false".

Option - zIndex

Z-index for the helper while being dragged. By default its value is "false".

Syntax

$(".selector").draggable(
   { zIndex: 100 }
);

The following section will show you a few working examples of drag functionapty.

Default functionapty

The following example demonstrates a simple example of draggable functionapty passing no parameters to the draggable() method.

<!DOCTYPE html>
<html>
   <head>
      <pnk href = "https://code.jquery.com/ui/1.10.4/themes/ui-pghtness/jquery-ui.css" 
         rel = "stylesheet">
      <script src = "https://code.jquery.com/jquery-1.10.2.js"></script>
      <script src = "https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
      
      <style>
         #draggable { width: 150px; height: 150px; padding: 0.5em; background:#eee;}
      </style>
      
      <script>
         $(function() {
            $( "#draggable" ).draggable();
         });
      </script>
   </head>
   
   <body>
      <span id = "draggable" class = "ui-widget-content">
         <p>Drag me !!!</p>
      </span>
   </body>
</html>

Let us save the above code in an HTML file dragexample.htm and open it in a standard browser that supports javascript. You must also see the following output. Now, you can play with the result −