-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathshowup.js
69 lines (60 loc) · 1.76 KB
/
showup.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*
* 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 || 110;
var previousScroll = 0;
$(window).scroll(function () {
// var currentScroll = $(this).scrollTop();
if ($(this).scrollTop() > hideOffset) {
if ($(this).scrollTop() > previousScroll) {
// Action on scroll down
target.removeClass(up).addClass(down);
} else {
// Action on scroll up
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;
});
});