1
0
mirror of http://git.whoc.org.uk/git/password-manager.git synced 2025-01-11 00:50:03 +01:00
password-manager-mirror/frontend/gamma/js/JQTouch/extensions/jqt.floaty.js
Clipperz 644891059e Added JQTouch and Zepto libraries
JQTouch and Zepto are tentatively used for the mobile version of Clipperz.
No final commitment has been made, though.
2013-01-09 10:03:53 +01:00

96 lines
3.3 KiB
JavaScript

/*
_/ _/_/ _/_/_/_/_/ _/
_/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
_/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
_/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
_/
_/
Created by David Kaneda <http://www.davidkaneda.com>
Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
Special thanks to Jonathan Stark <http://jonathanstark.com/>
and pinch/zoom <http://www.pinchzoom.com/>
(c) 2009 by jQTouch project members.
See LICENSE.txt for license.
*/
(function($) {
if ($.jQTouch)
{
$.jQTouch.addExtension(function Floaty(jQT){
$.fn.makeFloaty = function(options){
var defaults = {
align: 'top',
spacing: 20,
time: '.3s'
};
var settings = $.extend({}, defaults, options);
settings.align = (settings.align == 'top') ? 'top' : 'bottom';
return this.each(function(){
var $el = $(this);
$el.css({
'-webkit-transition': 'top ' + settings.time + ' ease-in-out',
'display': 'block',
'min-height': '0 !important'
}).data('settings', settings);
$(document).scroll(function(){
if ($el.data('floatyVisible') === 'true')
{
$el.scrollFloaty();
}
});
$el.scrollFloaty();
});
};
$.fn.scrollFloaty = function(){
return this.each(function(){
var $el = $(this);
var settings = $el.data('settings'); // Settings not being set as object w/Zepto
var wHeight = $('html').attr('clientHeight'); // WRONG
var newY = window.pageYOffset +
((settings.align == 'top') ?
settings.spacing : wHeight - settings.spacing - $el.get(0).offsetHeight);
$el.css('top', newY).data('floatyVisible', true);
});
};
$.fn.hideFloaty = function(){
return this.each(function(){
var $el = $(this);
var oh = $el.get(0).offsetHeight;
$el.css('top', -oh-10).data('floatyVisible', false);
});
};
$.fn.toggleFloaty = function(){
return this.each(function(){
var $el = $(this);
if ($el.data('floatyVisible') === 'true'){
$el.hideFloaty();
}
else
{
$el.scrollFloaty();
}
});
};
});
}
})($);