$.fn.étendre ({

  glisser: function (options) {

  var dragStart, DragMove, dragend,

  $ BoundaryElem, limitObj;

  _initOptions de fonction () {

  var noop = function () {}, DefaultOptions;

  DefaultOptions = {// l''élément de configuration par défaut

  boundaryElem: ? corps ? // limite de récipient

  };

  options = $.étendre (DefaultOptions, options || {});

  $ BoundaryElem = $ (options.boundaryElem);

  dragStart = Options.Le noop de dragStart,

  DragMove = Options.Le noop de DragMove,

  dragend = Options.La noop de dragend;

  }

  fonction _tra?ne (e) {

  var clientX, clientY, offsetLeft, offsetTop,

  $ Target = $ (this), auto = cela;

  limitObj = {

  _Left: 0,

  _Haut: 0,

  _right: ($ boundaryElem.innerWidth () || $ (fenêtre).largeur ()) - $ target.outerWidth (),

  _bottom: ($ boundaryElem.innerHeight () || $ (fenêtre).hauteur ()) - cible $.outerHeight ()

  };

  La position relative de l''élément et faire glisser la souris tout en appuyant sur l''enregistrement //

  clientX = e.clientX;

  clientY = e.clientY;

  offsetLeft = ce.offsetLeft;

  offsetTop = ce.offsetTop;

  dragStart.appliquer (ce, arguments);

  $ (Document).bind ( ''mousemove'', moveHandle)

  .bind ( ''mouseup'', upHandle);

  // déplacer les gestionnaires d''événements de souris

  fonction moveHandle (e) {

  var x = e.clientX - clientX + offsetLeft;

  var y = e.clientY - clientY + offsetTop;

  $ cible.css ({

  gauche: Math.max (Math.min (x, limitObj._right), limitObj._Left) + ''px'',

  En haut: Math.max (Math.min (y, limitObj._bottom), limitObj._top) + ''px''

  });

  DragMove.appliquer (self, arguments);

  // éviter le comportement par défaut du navigateur (le glisser de la souris l''image à une courte distance, il y aura Conseils d''interdiction, à savoir: les images ne peuvent pas glisser)

  e.preventDefault ();

  }

  // souris gestionnaires d''événements

  fonction upHandle (e) {

  $ (Document).unbind ( ''mousemove'', moveHandle);

  dragend.appliquer (self, arguments);

  }

  }

  _initOptions (); // initialiser l''objet de configuration

  $ (Ce)

  .css ({position: ''absolue''})

  .chaque fonction (() {

  $ (Ce).bind ( ''mousedown'', function (e) {

  _drag.appliquer (ce, [e]);

  // pour éviter la zone de texte est sélectionné pour le chrome firefox IE9

  e.preventDefault ();

  // pour firefox IE9 || moins de IE9

  fenêtre.getSelection ? fenêtre.getSelection ().removeAllRanges (): document.sélection.vide ();

  });

  });

  return this;

  }

  });

Exemples de code JavaScript pour atteindre la souris à des éléments de glisser

Recommend Article: