UNPKG

documon

Version:

A documentation system for mortals. Use with any language.

1,373 lines (712 loc) 75.2 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Draggable</title> <meta name="description" content="Makes a DOM Element draggable. NOTE: This is a stand-alone implementation. The jbeeb.utils.Draggable class is used for jbeeb objects. Whereas this class can be used on any DOM element (outside of jbeeb)."> <!-- Normalize --> <link rel="stylesheet" href="assets/vendor/normalize.css"> <!-- prettify --> <link rel="stylesheet" href="assets/vendor/prettify/codamike.css"> <script src="assets/vendor/prettify/prettify.js"></script> <!-- Documon Pages Info. (Used by various classes to identify this page.) --> <script> var pageCtx = { id : "root.Draggable", name: "Draggable" } </script> <!-- theme <link rel="stylesheet" href="assets/fonts/Fira_Sans/FiraSans.css"> <link rel="stylesheet" href="assets/fonts/Inconsolata/inconsolata.css"> --> <link rel="stylesheet" href="assets/css/pages.css"> <script src="assets/js/documon/Storage.js"></script> <script src="assets/js/documon/Access.js"></script> <script src="assets/js/documon/Pages.js"></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-106684927-1', 'auto'); ga('send', 'pageview'); </script> </head> <body> <div class="page"> <div class="main-method"> <a name="methods"></a> <div class="part-methods"> <a name="root.Draggable"></a><a name="Draggable"></a> <div class="member" > <div class="member-name clearfix"> <span class="member-name-left"> Draggable (<span class="method-arguments">params</span>) </span> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span> <span class="member-line-number">37</span> </span> </div> <div class="member-description"> <div class="meta-block meta-block-klass"> <div class="meta-line"><span class="meta-label" >xpath</span> <span class="meta-target">root.Draggable<span></div> <div class="meta-line"><span class="meta-label" >file</span> <span class="meta-target">documon/template/assets/js/documon/Draggable.js<span></div> </div> <p>Makes a DOM Element draggable. NOTE: This is a stand-alone implementation. The jbeeb.utils.Draggable class is used for jbeeb objects. Whereas this class can be used on any DOM element (outside of jbeeb).</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">params</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">Object</span> <div class="member-description"> <p>Configuration settings.</p> </div> <div class="part-parameters"> <div class="heading-part">params properties</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">target</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">string | DOM Element</span> <div class="member-description"> <p>The element to move. String = the ID of the element, or send in the DOM element directly.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">callback</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">function</span> <div class="member-description"> <p>A function to ping for each kind of operation. See (callback)[#callback] for details.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">constrain</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">string</span> <div class="member-description"> <p>Constrain movement along the "x" or "y" axis. Both constrain and constrainRect can be used together or independantly.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">constrainRect</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">Object</span> <div class="member-description"> <p>Constrain movement within a rectangle. The rectangle can be any object (including a DisplayObject) that contains the following properties <code>x, y, width, height</code></p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">threshold</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">number</span> <span class="default-value"> 5 </span> <div class="member-description"> <p>The pixel threshold for issuing the "didMove" flag on "end"</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">arg</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">any</span> <div class="member-description"> <p>A custom argument to be delivered to the (callback)[#callback].</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="member"> <div class="heading-example">Example</div> <div class="example-block"> <pre><code> var myDrag = new documon.Draggable({ target : obj , callback : fn , constrain : "x" , constrainRect : obj , threshold : 5 });</code></pre> </div> </div> </div> </div> </div> </div> <div class="parts"> <a name="properties"></a> <div class="part-properties"> <div class="heading-part">Properties</div> <div class="member"> <div class="member-block-group"> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._callback"></a><a name="_callback"></a> <span class="member-name">_callback</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">126</span> </span> <div class="param-description"> <span class="type">function</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>Configured callback</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._callbackArg"></a><a name="_callbackArg"></a> <span class="member-name">_callbackArg</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">132</span> </span> <div class="param-description"> <span class="type">function</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>Configured argument to send to the (callback)[#callback].</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._constrain"></a><a name="_constrain"></a> <span class="member-name">_constrain</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">138</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_constrain</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._constrainRect"></a><a name="_constrainRect"></a> <span class="member-name">_constrainRect</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">144</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_constrainRect</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._didInitMove"></a><a name="_didInitMove"></a> <span class="member-name">_didInitMove</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">189</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_didInitMove</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._didMove"></a><a name="_didMove"></a> <span class="member-name">_didMove</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">176</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_didMove</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._didMoveFudge"></a><a name="_didMoveFudge"></a> <span class="member-name">_didMoveFudge</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">183</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_didMoveFudge</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._didMoveThreshold"></a><a name="_didMoveThreshold"></a> <span class="member-name">_didMoveThreshold</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">195</span> </span> <div class="param-description"> <span class="type">function</span> <span class="flag private">private</span> <!-- public private protected --> <span class="default-value"> 5 </span> <div class="member-description"> <p>The pixel threshold for issuing the "didMove" flag on "end"</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._down_bound"></a><a name="_down_bound"></a> <span class="member-name">_down_bound</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">201</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_down_bound</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._mask"></a><a name="_mask"></a> <span class="member-name">_mask</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">220</span> </span> <div class="param-description"> <span class="type">DOM Element</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>The overlay masking object used to reject mouse events on underlaying DOM elements.</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._move_bound"></a><a name="_move_bound"></a> <span class="member-name">_move_bound</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">214</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_move_bound</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._startMouseX"></a><a name="_startMouseX"></a> <span class="member-name">_startMouseX</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">163</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_startMouseX</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._startMouseY"></a><a name="_startMouseY"></a> <span class="member-name">_startMouseY</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">170</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_startMouseY</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._startX"></a><a name="_startX"></a> <span class="member-name">_startX</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">150</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_startX</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._startY"></a><a name="_startY"></a> <span class="member-name">_startY</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">157</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_startY</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._target"></a><a name="_target"></a> <span class="member-name">_target</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">120</span> </span> <div class="param-description"> <span class="type">DOM Element</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>The object we're going to drag.</p> </div> </div> </div> </div> <div class="member-block" data-access="private" > <div class="member-block-left"> <a name="root.Draggable._up_bound"></a><a name="_up_bound"></a> <span class="member-name">_up_bound</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span><span class="member-line-number" title="documon/template/assets/js/documon/Draggable.js">208</span> </span> <div class="param-description"> <span class="type">object</span> <span class="flag private">private</span> <!-- public private protected --> <div class="member-description"> <p>_up_bound</p> </div> </div> </div> </div> </div> </div> </div> <a name="methods"></a> <div class="part-methods"> <div class="heading-part">Methods</div> <a name="root.Draggable._down"></a><a name="_down"></a> <div class="member" data-access="private" > <div class="member-name clearfix"> <span class="member-name-left"> _down (<span class="method-arguments">evt</span>) <span class="flag private">private</span> <!-- public private protected --> </span> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span> <span class="member-line-number">268</span> </span> </div> <div class="member-description"> <p>The mouse "down" listener function</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">evt</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">MouseEvent</span> <div class="member-description"> <p>evt</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> <a name="root.Draggable._initMove"></a><a name="_initMove"></a> <div class="member" data-access="private" > <div class="member-name clearfix"> <span class="member-name-left"> _initMove (<span class="method-arguments">evt</span>) <span class="flag private">private</span> <!-- public private protected --> </span> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span> <span class="member-line-number">285</span> </span> </div> <div class="member-description"> <p>A one-time setup to extablish the starting position and create the (mask)[#maks].</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">evt</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">MouseEvent</span> <div class="member-description"> <p>Transfered from teh "move" listener.</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> <a name="root.Draggable._move"></a><a name="_move"></a> <div class="member" data-access="private" > <div class="member-name clearfix"> <span class="member-name-left"> _move (<span class="method-arguments">evt</span>) <span class="flag private">private</span> <!-- public private protected --> </span> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span> <span class="member-line-number">325</span> </span> </div> <div class="member-description"> <p>The mouse "move" listener function</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">evt</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">MouseEvent</span> <div class="member-description"> <p>evt</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> <a name="root.Draggable._up"></a><a name="_up"></a> <div class="member" data-access="private" > <div class="member-name clearfix"> <span class="member-name-left"> _up (<span class="method-arguments">evt</span>) <span class="flag private">private</span> <!-- public private protected --> </span> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span> <span class="member-line-number">398</span> </span> </div> <div class="member-description"> <p>The mouse "up" listener function</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">evt</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">MouseEvent</span> <div class="member-description"> <p>evt</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> <a name="root.Draggable.callback"></a><a name="callback"></a> <div class="member" data-access="protected" > <div class="member-name clearfix"> <span class="member-name-left"> callback (<span class="method-arguments">obj</span>, <span class="method-arguments">pos</span>, <span class="method-arguments">kind</span>, <span class="method-arguments">didmove</span>, <span class="method-arguments">arg</span>) <span class="flag protected">protected</span> <!-- public private protected --> </span> <span class="member-name-right"> <span class="member-file">documon/template/assets/js/documon/Draggable.js</span> <span class="member-line-number">257</span> </span> </div> <div class="member-description"> <p>The function to ping when an operation occurs.</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">obj</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">object</span> <div class="member-description"> <p>The internal object we use to manage the</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">pos</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">object</span> <div class="member-