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());
35 var tbl = tbh.find("th,td");
37 tbl.each(function () {
39 $elt.width($elt.outerWidth(true));
43 'position': 'absolute',
44 'top': originalPosition,
48 if (options.enabled) {
49 $(window).scroll(function () {
50 var offsetTop = tbh.offset().top;
52 var s = parseInt($(window).scrollTop(), 10);
54 var fixMe = (s > offsetTop);
55 var repositionMe = (s < originalOffset);
62 tbh.addClass("floating");
66 'position': 'absolute',
67 'top': originalPosition,
70 tbh.removeClass("floating");
74 $(window).resize(function() {
75 var p = $(tbh).parents('div').first();
76 $(tbh).width(p.width()-10);