jQuery UI par exemple - traînée (Draggable)
Permettre à la souris pour déplacer l'élément.
Pour plus de détails sur l'interaction draggable, consultez la documentation de l' API peut glisser et déposer widgets (le Glissable le Widget) .
La fonction par défaut
Activer fonctionnalité draggable sur tout élément DOM. En cliquant et en faisant glisser la souris dans la fenêtre pour déplacer l'objet draggable.
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) - La fonction par défaut </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css"> <Style> #draggable {width: 150px; height: 150px; padding: 0.5em;} </ Style> <Script> $ (Function () { $ ( "#draggable") .draggable (); }); </ Script> </ Head> <Body> <Div id = classe "draggable" = "ui-widget-content"> <P> S'il vous plaît me traîner! </ P> </ Div> </ Body> </ Html>
défilement automatique
le défilement automatique du document lorsque le draggable déplacé en dehors de la fenêtre. Réglez le scroll
option true pour activer le défilement automatique, réglage fin, la vitesse de défilement lorsque vous faites défiler la gâchette scrollSensitivity
et scrollSpeed
options de réglage.
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) - défilement automatique </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css"> <Style> #draggable, # draggable2, # draggable3 {width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0;} </ Style> <Script> $ (Function () { $ ( "#draggable") .draggable ({Défilez: true}); $ ( "# Draggable2") .draggable ({scroll: true, scrollSensitivity: 100}); $ ( "# Draggable3") .draggable ({scroll: true, scrollSpeed: 100}); }); </ Script> </ Head> <Body> <Div id = classe "draggable" = "ui-widget-content"> <P> Scroll est définie sur true, le paramètre par défaut </ p> </ Div> <Div id = "draggable2" class = "ui-widget-content"> <P> scrollSensitivity à 100 </ p> </ Div> <Div id = "draggable3" class = "ui-widget-content"> <P> scrollSpeed à 100 </ p> </ Div> <Style Div = "height: 5000px; largeur: 1px;"> </ div> </ Body> </ Html>
contraints mouvement
zone Draggable définie par la limite pour contraindre le mouvement de chaque déplaçables. Définir l' axis
des options pour limiter chemin draggable pour l'axe x ou y-axe ou containment
option pour spécifier un élément DOM parent ou un sélecteur jQuery, comme «document.».
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) - mouvement contraint </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css"> <Style> .draggable {width: 90px; hauteur: 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%; hauteur: 150px; border: #ccc solide 2px; padding: 10px;} h3 {clear: left;} </ Style> <Script> $ (Function () { $ ( "#draggable") .draggable ({Axe: "y"}); $ ( "# Draggable2") .draggable ({axe "x"}); $ ( "# Draggable3") .draggable ({confinement: "# confinement-wrapper", faites défiler: false}); $ ( "# Draggable5") .draggable ({confinement: "parent"}); }); </ Script> </ Head> <Body> <H3> mouvement le long de la contrainte de l'axe: </ h3> <Div id = classe "draggable" = "ui-widget-contenu draggable"> <P> Seulement glisser vertical </ p> </ Div> <Div id = "draggable2" class = "ui-widget-contenu draggable"> <P> Seulement glisser horizontal </ p> </ Div> <H3> ou un mouvement limité dans un autre élément DOM: </ h3> <Div id = "confinement-wrapper"> <Div id = "draggable3" class = "ui-widget-contenu draggable"> <P> Je fus contraint dans une boîte </ p> </ Div> <Class Div = "ui-widget-contenu draggable"> <P id = "draggable5" class = "ui-widget-tête"> Je suis confiné dans l'élément parent </ p> </ Div> </ Div> </ Body> </ Html>
style du curseur
Lorsque vous faites glisser l'objet pour positionner le curseur. Par défaut, le curseur est au milieu traîné objet. Utilisez cursorAt
option pour indiquer la position par rapport à l'autre (spécifié par rapport à une partie supérieure de la valeur de pixel, à droite, en bas, à gauche de) de déplaçables. En fournissant une valeur CSS de curseur avec les cursor
options pour personnaliser l'apparence du curseur. valeurs de curseur CSS valides sont les suivantes: par défaut, déplacer le pointeur, réticule, et ainsi de suite.
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) - Style du curseur </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.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: "bouger", cursorAt: {top: 56, à gauche: 56}}); $ ( "# Draggable2") .draggable ({cursor: "réticule", cursorAt: {top: -5, à gauche: -5}}); $ ( "# Draggable3") .draggable ({cursorAt: {bottom: 0}}); }); </ Script> </ Head> <Body> <Div id = classe "draggable" = "ui-widget-content"> <P> Je suis toujours au milieu (par rapport à la souris) </ p> </ Div> <Div id = "draggable2" class = "ui-widget-content"> <P> Mon curseur gauche -5 et top -5 </ p> </ Div> <Div id = "draggable3" class = "ui-widget-content"> <P> Mon seul contrôler la position du curseur des valeurs «de fond» </ p> </ Div> </ Body> </ Html>
départ différé
En delay
retard millisecondes commencez à faire glisser les paramètres d'option. Par la distance
option est enfoncé et faites glisser le curseur sur le pixel spécifié avant d' autoriser le glisser-déposer.
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) - départ différé </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.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 ({retard: 1000}); $ ( ".ui-Draggable") .disableSelection (); }); </ Script> </ Head> <Body> <Div id = classe "draggable" = "ui-widget-content"> <P> Seulement quand je traîne un pixel 20, et a commencé à glisser </ p> </ Div> <Div id = "draggable2" class = "ui-widget-content"> Après <p> Peu importe combien la distance que vous avez à faire glisser et glisser commencé à attendre 1000ms </ p> </ Div> </ Body> </ Html>
événement
déplaçables sur start
, drag
et stop
les événements. Traîner le début de déclenchement start
événement déclenché lors de drag drag
événement, déclenché lorsque la traînée arrêt stop
événement.
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) - Events </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.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"), Chiffres = [0, 0, 0]; $ ( "#draggable") .draggable ({ commencer: function () { chiffres [0] ++; updateCounterStatus ($ start_counter, chiffres [0]); }, drag: function () { compte [1] ++; updateCounterStatus ($ drag_counter, compte [1]); }, stop: function () { compte [2] ++; updateCounterStatus ($ stop_counter, chiffres [2]); } }); fonctionner updateCounterStatus ($ event_counter, NEW_COUNT) { // Mise à jour premier état visuel ... if (! $ event_counter.hasClass ( "state-ui-hover")) { $ Event_counter.addClass ( "état ui-hover») . .siblings () removeClass ( "state-ui-hover»); } // ... Ensuite, mettre à jour les numéros $ ( "span.count", $ event_counter) .text (NEW_COUNT); } }); </ Script> </ Head> <Body> <Div id = classe "draggable" = "ui-widget ui-widget-content"> <P> S'il vous plaît me traîner, ce qui déclenche une chaîne d'événements. </ P> <Ul class = "ui-helper-reset"> <Li id = "event-start" class = "ui-état par défaut ui-coin-all"> <span class = "ui-icon ui-icon-play"> </ span> "start" est appelée <span class = "count"> 0 </ span> x </ li> <Li id = "event-drag" class = "ui-état par défaut ui-coin-all"> <span class = "ui-icon ui-icon-arrow-4"> </ span> "drag" est appelé <span class = "count"> 0 </ span> x </ li> <Li id = "event-stop" class = "ui-état par défaut ui-coin-all"> <span class = "ui-icon ui-icon-stop"> </ span> "stop" est appelé <span class = "count"> 0 </ span> x </ li> </ Ul> </ Div> </ Body> </ Html>
Poignées
Est autorisée que lorsque la partie de curseur spécifié glisser sur draggable. Utilisez la handle
option pour spécifier l'élément (ou groupe d'éléments) du sélecteur jQuery pour l'objet déplacé.
Ou lorsque l'élément de curseur spécifié (ou groupe d'éléments) dans la traînée autorisée draggable. Utilisez la handle
option pour spécifier annuler la fonction de glisser jQuery sélecteur.
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) - Poignées </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css"> <Style> #draggable, # draggable2 {width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0;} p #draggable {curseur: déplacer;} </ Style> <Script> $ (Function () { $ ( "#draggable") .draggable ({Handle: "p"}); $ ( "# Draggable2") .draggable ({cancel: "p.ui-widget-tête"}); $ ( "Div, p") .disableSelection (); }); </ Script> </ Head> <Body> <Div id = classe "draggable" = "ui-widget-content"> <P class = "ui-widget-tête"> Vous ne pouvez faire glisser et déposer dans cette gamme I </ p> </ Div> <Div id = "draggable2" class = "ui-widget-content"> <P> Vous pouvez me prendre autour de glisser & hellip; </ p> <P class = "ui-widget-tête"> & hellip; mais vous ne pouvez pas me </ p> glisser Dans cette gamme </ Div> </ Body> </ Html>
Restaurer l'emplacement
Comme avec les valeurs booléennes revert
lorsque l' option draggable pour arrêter le déplacement, le retour draggable (ou son assistant) à l'emplacement d' origine.
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) - Restaurer Emplacement </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.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 ({revenir: true, helper: "clone"}); }); </ Script> </ Head> <Body> <Div id = classe "draggable" = "ui-widget-content"> <P> Restaurer </ p> </ Div> <Div id = "draggable2" class = "ui-widget-content"> <P> Restaurer adjoint </ p> </ Div> </ Body> </ Html>
Aligner sur la grille ou des éléments
Aligner les éléments frontières DOM internes ou externes déplaçables. L'utilisation de snap
, snapMode
(intérieure, extérieure, à la fois) et snapTolerance
(lors de l' appel aligné avec la distance entre les éléments déplaçables en pixels) de l' option.
Aligner sur la grille ou déplaçables. Par grid
option de taille pour définir les cellules de la grille (hauteur ou largeur pixels).
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) - Aligner à des éléments de la grille ou </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css"> <Style> .draggable {width: 90px; hauteur: 80px; padding: 5px; float: left; margin: 0 10px 10px 0; font-size: .9em;} .ui-widget-tête p, .ui-widget-content p {margin: 0;} #snaptarget {height: 140px;} </ Style> <Script> $ (Function () { $ ( "#draggable") .draggable ({Snap: true}); $ ( "# Draggable2") .draggable ({pression: ".ui-widget-tête"}); $ ( "# Draggable3") .draggable ({pression: ".ui-widget-tête", SNAPMODE: "externe"}); $ ( "# Draggable4") .draggable ({grille: [20, 20]}); $ ( "# Draggable5") .draggable ({grille: [80, 80]}); }); </ Script> </ Head> <Body> <Div id = "snaptarget" class = "ui-widget-tête"> <P> Je suis un objectif aligné </ p> </ Div> style="clear:both"> <br <Div id = classe "draggable" = "ui-widget-contenu draggable"> <P> Par défaut (pression: true), aligné à tous les autres éléments draggable </ p> </ Div> <Div id = "draggable2" class = "ui-widget-contenu draggable"> <P> Je viens aligné à la grande boîte </ p> </ Div> <Div id = "draggable3" class = "ui-widget-contenu draggable"> <P> Je viens aligné sur le bord extérieur de la grande boîte </ p> </ Div> <Div id = "draggable4" class = "ui-widget-contenu draggable"> <P> I aligné à une grille de 20 x 20 </ p> </ Div> <Div id = "draggable5" class = "ui-widget-contenu draggable"> <P> I aligné sur une grille de 80 x 80 </ p> </ Div> </ Body> </ Html>
La rétroaction visuelle
Fournir une rétroaction à l'utilisateur, comme assistant à la façon dont les objets traîné. helper
option accepte de originale '(avec le curseur des objets déplaçables), «clone» des valeurs (avec la copie draggable du curseur), ou une fonction retourne l'élément DOM (l'élément lors d' un glisser le curseur sur l'écran). Par opacity
option contrôle la transparence assistant.
Pour distinguer ce qui est un draggable est traîné, laissez draggable en mouvement pour maintenir l'avant. Si vous faites glisser, en utilisant zIndex
option pour régler la hauteur de la z-index assistant, ou utiliser la stack
option pour vous assurer que lorsque vous arrêtez de glisser, le dernier étant traîné élément apparaît toujours au - dessus du groupe avec d' autres projets.
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) - rétroaction visuelle </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css"> <Style> #draggable, # draggable2, # draggable3, #set div {width: 90px; hauteur: 90px; padding: 0.5em; float: left; margin: 0 10px 10px 0;} #draggable, # draggable2, # draggable3 {margin-bottom: 20px;} #set {clear: both; float: left; largeur: 368px; height: 120px;} p {clear: both; margin: 0; padding: 1em 0;} </ Style> <Script> $ (Function () { $ ( "#draggable") .draggable ({Helper: "original"}); $ ( "# Draggable2") .draggable ({opacité: 0,7, helper: "clone"}); $ ( "# Draggable3") .draggable ({ curseur: "déplacer", cursorAt: {top: -12, à gauche: -20}, helper: function (event) { return $ ( "<div class = 'ui-widget-header> Je suis un assistant personnalisé </ div>"); } }); $ ( "#set Div") .draggable ({pile: "div #set"}); }); </ Script> </ Head> <Body> <Classe H3 = "docs"> helper: </ h3> <Div id = classe "draggable" = "ui-widget-content"> <P> originale </ p> </ Div> <Div id = "draggable2" class = "ui-widget-content"> <P> translucide clone </ p> </ Div> <Div id = "draggable3" class = "ui-widget-content"> <P> assistant personnalisé (en conjonction avec cursorAt) </ p> </ Div> <H3 class = "docs"> pile: </ h3> <Div id = "set"> <Class Div = "ui-widget-content"> <P> Nous sommes draggables .. </ p> </ Div> <Class Div = "ui-widget-content"> <P> .. il est z-index est automatiquement contrôlé .. </ p> </ Div> <Class Div = "ui-widget-content"> <P> .. avec options de pile. </ P> </ Div> </ Div> </ Body> </ Html>
jQuery UI Draggable + Sortable
Draggable et Sortable d'interaction transparente.
<! DOCTYPE html> <Html lang = "fr"> <Head> <Meta charset = "utf-8"> <Titre> jQuery UI glisser (Draggable) + Sort (Sortable) </ title> <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script> <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css"> <Style> ul {list-style-type: none; margin: 0; padding: 0; margin-bottom: 10px;} li {margin: 5px; padding: 5px; largeur: 150px;} </ Style> <Script> $ (Function () { $ ( "#sortable") .sortable ({ revenir: true }); $ ( "#draggable") .draggable ({ connectToSortable: "#sortable", helper: "clone", revenir: «invalide» }); $ ( "Ul, li") .disableSelection (); }); </ Script> </ Head> <Body> <Ul> <Li id = classe "draggable" = "ui-state-highlight"> S'il vous plaît me traîner </ li> </ Ul> <Ul id = "sortable"> <Li class = "ui-state-default"> Article 1 </ li> <Li class = "ui-state-default"> Article 2 </ li> <Li class = "ui-state-default"> Article 3 </ li> <Li class = "ui-state-default"> Article 4 </ li> <Li class = "ui-state-default"> Article 5 </ li> </ Ul> </ Body> </ Html>