1 /* Source: http://www.webspeaks.in/2011/07/new-gmail-like-floating-toolbar-jquery.html
2 Revision: http://jsfiddle.net/pasmalin/AyjeZ/
4 (function ($, window) {
6 $.fn.fixFloat = function (options) {
7 var options = options || {};
11 originalOffset: tbh.offset().top,
12 originalPosition: tbh.position().top,
14 var originalOffset = typeof options.originalOffset === 'undefined'
15 ? defaults.originalOffset
16 : options.originalOffset;
18 var originalPosition = typeof options.originalPosition === 'undefined'
19 ? defaults.originalPosition
20 : options.originalPosition;
22 options = $.extend(defaults, options);
24 if (tbh.css('position') !== 'absolute') {
25 var tbhBis = tbh.clone();
27 "display": tbh.css("display"),
28 "visibility": "hidden"
30 tbhBis.width(tbh.innerWidth(true));
31 tbhBis.height(tbh.innerHeight(true));
32 tbhBis.attr('id', tbh.attr('id')+'Bis'); // Avoid 2 elts with the same id
34 tbh.width(tbh.width());
36 'position': 'absolute',
37 'top': originalPosition,
41 if (options.enabled) {
42 $(window).scroll(function () {
43 var offsetTop = tbh.offset().top;
45 var s = parseInt($(window).scrollTop(), 10);
47 var fixMe = (s > offsetTop);
48 var repositionMe = (s < originalOffset);
55 tbh.addClass("floating");
59 'position': 'absolute',
60 'top': originalPosition,
63 tbh.removeClass("floating");
67 $(window).resize(function() {
68 var p = $(tbh).parents('div').first();
69 $(tbh).width(p.width()-10);