Fix for Bug 7135: Save button options
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / lib / jquery / plugins / jquery.fixFloat.js
1 /* Source: http://www.webspeaks.in/2011/07/new-gmail-like-floating-toolbar-jquery.html
2    Revision: http://jsfiddle.net/pasmalin/AyjeZ/
3 */
4 (function($){
5   $.fn.fixFloat = function(options){
6
7     var defaults = {
8       enabled: true
9     };
10     var options = $.extend(defaults, options);
11
12     var offsetTop;    /**Distance of the element from the top of window**/
13     var s;        /**Scrolled distance from the top of window through which we have moved**/
14     var fixMe = true;
15     var repositionMe = true;
16
17     var tbh = $(this);
18     var originalOffset = tbh.position().top;  /**Get the actual distance of the element from the top mychange:change to position better work**/
19
20     if (tbh.css('position')!='absolute') {
21       var tbhBis = $("<div></div>");
22       tbhBis.css({"display":tbh.css("display"),"visibility":"hidden"});
23       tbhBis.width(tbh.outerWidth(true));
24       tbhBis.height(tbh.outerHeight(true));
25       tbh.after(tbhBis);
26       tbh.width(tbh.width());
27       tbh.css({'position':'absolute'});
28     }
29       tbh.css({'z-index':1000});
30
31     if(options.enabled){
32       $(window).scroll(function(){
33         var offsetTop = tbh.offset().top;  /**Get the current distance of the element from the top **/
34         var s = parseInt($(window).scrollTop(), 10);  /**Get the from the top of wondow through which we have scrolled**/
35         var fixMe = true;
36         if(s > offsetTop){
37           fixMe = true;
38         }else{
39           fixMe = false;
40         }
41
42         if(s < originalOffset){
43           repositionMe = true;
44         }else{
45           repositionMe = false;
46         }
47
48         if(fixMe){
49           var cssObj = {
50             'position' : 'fixed',
51             'top' : '0px'
52           }
53           tbh.css(cssObj);
54           tbh.addClass("floating");
55         }
56         if(repositionMe){
57           var cssObj = {
58             'position' : 'absolute',
59             'top' : originalOffset
60           }
61           tbh.css(cssObj);
62           tbh.removeClass("floating");
63         }
64       });
65     }
66   };
67 })(jQuery);