mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-29 19:54:28 -05:00
87 lines
No EOL
2.2 KiB
JavaScript
87 lines
No EOL
2.2 KiB
JavaScript
/*
|
|
* 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 && !target.hasClass('locked')) {
|
|
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;
|
|
});
|
|
}); |