X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-demo.git;a=blobdiff_plain;f=afb-client%2Fbower_components%2Ftether%2Fdocs%2F3-Advanced%2F2-extending_tether.md;fp=afb-client%2Fbower_components%2Ftether%2Fdocs%2F3-Advanced%2F2-extending_tether.md;h=6a13e681a84a91b1da109e6f5f8c7ff0d1a672ae;hp=0000000000000000000000000000000000000000;hb=5b1e6cc132f44262a873fa8296a2a3e1017b0278;hpb=f7d2f9ac4168ee5064580c666d508667a73cefc0 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.