summaryrefslogtreecommitdiffstats
path: root/afb-client/bower_components/tether/docs/3-Advanced/2-extending_tether.md
diff options
context:
space:
mode:
Diffstat (limited to 'afb-client/bower_components/tether/docs/3-Advanced/2-extending_tether.md')
-rw-r--r--afb-client/bower_components/tether/docs/3-Advanced/2-extending_tether.md54
1 files changed, 54 insertions, 0 deletions
diff --git a/afb-client/bower_components/tether/docs/3-Advanced/2-extending_tether.md b/afb-client/bower_components/tether/docs/3-Advanced/2-extending_tether.md
new file mode 100644
index 0000000..6a13e68
--- /dev/null
+++ b/afb-client/bower_components/tether/docs/3-Advanced/2-extending_tether.md
@@ -0,0 +1,54 @@
+Extending Tether
+-----
+
+Tether has a module system which can be used to modify Tether's positioning, or just do something each time the Tether is moved.
+
+Tether has an array called `Tether.modules`, push onto it to add a module:
+
+```coffeescript
+Tether.modules.push
+ position: ({top, left}) ->
+ top += 10
+
+ {top, left}
+```
+
+#### Position
+
+Your position function can either return a new object with `top` and `left`, `null`/`undefined` to leave the coordinates unchanged, or
+`false` to cancel the positioning.
+
+The position function is passed an object with the following elements:
+
+```javascript
+{
+ left, // The element's new position, from the top left corner of the page
+ top,
+ targetAttachment, // The targetAttachment, with 'auto' resolved to an actual attachment
+ targetPos, // The coordinates of the target
+ attachment, // The attachment, as passed in the option
+ elementPos, // The coordinates of the element
+ offset, // The offset, after it's converted into pixels and the manual offset is added
+ targetOffset, // The attachment is converted into an offset and is included in these values
+ manualOffset, // The manual offset, in pixels
+ manualTargetOffset
+}
+```
+
+It is called with the Tether instance as its context (`this`).
+
+#### Initialize
+
+Modules can also have an `initialize` function which will be called when a new tether is created. The initialize function
+is also called with the Tether instance as its context.
+
+```coffeescript
+Tether.modules.push
+ initialize: ->
+ console.log "New Tether Created!", @
+```
+
+#### Examples
+
+[Constraints](https://github.com/HubSpot/tether/blob/master/coffee/constraint.coffee) and [shift](https://github.com/HubSpot/tether/blob/master/coffee/shift.coffee) are both implemented as modules.
+[Mark Attachment](https://github.com/HubSpot/tether/blob/master/coffee/markAttachment.coffee) is used by the docs.