The directive will bind a scroll listener to the window that checks to see if the window has scrolled passed the element's *follow point*. If it has then:
1. The element's CSS 'position' is set to 'fixed' and the CSS 'top' is set to the value of the *follow point* directive attribute.
2. A clone of the element is created as a sibling whose visibility is hidden
3. The width of the (now) fixed element is set to the width as calculated by it's non-fixed getBoundingClientRect() width.
1. The element's CSS 'position' is set to 'fixed' and the CSS 'top' is set to the value of the *follow point* directive attribute.
2. A clone of the element is created as a sibling whose visibility is hidden
3. The width of the (now) fixed element is set to the width as calculated by it's non-fixed getBoundingClientRect() width.
If the window has scrolled back above the element's follow point then the above is reversed; including restoring the old CSS 'position' and 'top' attributes and destroying the clone.