This plugin makes it possible to have a fixed position element that is relative to it’s parent. A normal fixed positioned element would be “out of context” and is very difficult to use in the most common situations with fluid designs. This plugin solves that problem with as little code as I could possible get it so it will run in the most optimi…
CSS JavaScript HTML
Latest commit 220c5d1 Sep 17, 2016 @yairEO fixes #24

README.md

stickyfloat

This plugin makes it possible to have a fixed position element that is relative to it’s parent. A normal fixed positioned element would be “out of context” and is very difficult to use in the most common situations with fluid designs. This plugin solves that problem with as little code as I could possible get it so it will run in the most optimized way, while also allow you to customize it in many important ways which might suit you best.

1.2KB - minified + gziped

9KB - uncompressed

Demo page

Benefits

  • Can handle many floated elements, each with it’s own settings
  • Floated elements’ movement can be bound inside their parents’ area
  • Uses Native javascript easing, but using CSS3 transitions would be the optimum (not for IE)
  • Has many settings, such as stick to the bottom or animation style
  • Code is very maintainable and higly efficient
  • Uses requestAnimationFrame with a throttled fall-back

Example – initialize

jQuery('.menu').stickyfloat( {duration: 400} );

Example – update (change settings for a specific element)

jQuery('.menu').stickyfloat('update',{duration : 0, stickToBottom:true });

Example – destroy (no more floating)

jQuery('.menu').stickyfloat('destroy');

Old Browsers (no ES5 support)

Please add this shim before any other script:

<script src='http://cdnjs.cloudflare.com/ajax/libs/es5-shim/2.3.0/es5-shim.js'></script>

Parameters

Setting Default / type what it's for
scrollArea window / DOM element The element which stickyfloat should track it's scroll position (for situations with inner scroll)
duration 200 / Number in ms The duration of the animation in ms
startOffset 0 / Number The amount of scroll offset in px after the animations kicks in
offsetY 0 / Number The offset from the top in px when the object is animated
lockBottom true / Boolean Set to false if you don’t want your floating box to stop at parent's bottom
stickToBottom false / Boolean Make whatever that is “floating” stick to the bottom instead to the top
delay 0 / Number Delay in milliseconds until the animation starts
easing linear / String Easing function (jQuery has only two by default: ‘swing’ & ‘linear’)
cssTransition false / Boolean If you wish to manually set your own CSS3 transition styles on the floated element, set this to 'true'
onReposition undefined / function A callback to be invoked when the floated element is repositioned. Takes one argument: the element.