diff options
Diffstat (limited to 'public/vendor/showup/showup.js')
-rwxr-xr-x | public/vendor/showup/showup.js | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/public/vendor/showup/showup.js b/public/vendor/showup/showup.js new file mode 100755 index 00000000..f4f2267e --- /dev/null +++ b/public/vendor/showup/showup.js @@ -0,0 +1,87 @@ +/* + * Showup.js jQuery Plugin + * http://github.com/jonschlinkert/showup + * + * Copyright (c) 2013 Jon Schlinkert, contributors + * Licensed under the MIT License (MIT). + */ + + +(function( $ ) { + $.fn.showUp = function(ele, options) { + options = options || {}; + + var target = $(ele); + var down = options.down || 'navbar-hide'; + var up = options.up || 'navbar-show'; + var btnHideShow = options.btnHideShow || '.btn-hide-show'; + var hideOffset = options.offset || 60; + var previousScroll = 0; + var isHide = false; + + $(window).scroll(function () { + checkScrollTop(); + }); + + $(window).resize(function () { + checkScrollTop(); + }); + + $(window).mousewheel(function () { + checkScrollTop(); + }); + + function checkScrollTop() + { + target.clearQueue(); + target.stop(); + var currentScroll = $(this).scrollTop(); + if (currentScroll > hideOffset) { + if(Math.abs(previousScroll - currentScroll) < 50) return; + if (currentScroll > previousScroll) { + // Action on scroll down + target.removeClass(up).addClass(down); + } else if (currentScroll < previousScroll) { + // Action on scroll up + target.removeClass(down).addClass(up); + } + } else { + target.removeClass(down).addClass(up); + } + previousScroll = $(this).scrollTop(); + } + + // Toggle visibility of target on click + $(btnHideShow).click(function () { + if (target.hasClass(down)) { + target.removeClass(down).addClass(up); + } else { + target.removeClass(up).addClass(down); + } + }); + }; +})( jQuery ); + +// TODO: make customizable +$(document).ready(function () { + var duration = 420; + var showOffset = 220; + var btnFixed = '.btn-fixed-bottom'; + var btnToTopClass = '.back-to-top'; + + $(window).scroll(function () { + if ($(this).scrollTop() > showOffset) { + $(btnFixed).fadeIn(duration); + } else { + $(btnFixed).fadeOut(duration); + } + }); + + $(btnToTopClass).click(function (event) { + event.preventDefault(); + $('html, body').animate({ + scrollTop: 0 + }, duration); + return false; + }); +});
\ No newline at end of file |