jQuery(document).ready(function( $ ) {
var didScroll;
var lastScrollTop = 0;
var delta = 5;
var navbarHeight = $('#site-header').outerHeight() -150;
$(window).scroll(function(event){
didScroll = true;
});
var lastScrollTop = 0;
$(window).scroll(function(event){
var st = $(this).scrollTop();
if (st > lastScrollTop){
// Scroll Down
$('.navbar-fixed-top').removeClass('nav-down').addClass('nav-up');
}else if(st < 150){
$('.navbar-fixed-top').removeClass('nav-down').removeClass('nav-up');
} else {
// Scroll Up
if(st + $(window).height() < $(document).height()) {
$('.navbar-fixed-top').removeClass('nav-up').addClass('nav-down');
}
}
lastScrollTop = st;
});
jQuery('.site-navigation').slideAndSwipe();
});
;(function($, document, window, undefined) {
'use strict';
var slideAndSwipe = $.fn.slideAndSwipe = function(options) {
var nav = $(this); // get the element to swipe
var navWidth = -nav.outerWidth();
var transInitial = navWidth;
// get settings
var settings = $.extend({
triggerOnTouchEnd : true,
swipeStatus : swipeStatus,
allowPageScroll : 'vertical',
threshold : 100,
excludedElements : 'label, button, input, select, textarea, .noSwipe',
speed : 250
}, options );
nav.swipe(settings);
function swipeStatus(event, phase, direction, distance) {
if(phase == 'start') {
if(nav.hasClass('ssm-nav-visible')) {
transInitial = 0;
} else {
transInitial = navWidth;
}
}
var mDistance;
if (phase == 'move' && (direction == 'left')) {
if(transInitial < 0) {
mDistance = transInitial - distance;
} else {
mDistance = -distance;
}
scrollNav(mDistance, 0);
} else if (phase == 'move' && direction == 'right') {
if(transInitial < 0) {
mDistance = transInitial + distance;
} else {
mDistance = distance;
}
scrollNav(mDistance, 0);
} else if (phase == 'cancel' && (direction == 'left') && transInitial === 0) {
scrollNav(0, settings.speed);
} else if (phase == 'end' && (direction == 'left')) {
hideNavigation();
} else if ((phase == 'end' || phase == 'cancel') && (direction == 'right')) {
console.log('end');
}
}
/**
* Browser detect
*/
function isSafari() {
return /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
}
function isChrome() {
return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
}
/**
* Manually update the position of the nav on drag
*/
function scrollNav(distance, duration) {
nav.css('transition-duration', (duration / 1000).toFixed(1) + 's');
if(distance >= 0) {
distance = 0;
}
if(distance <= navWidth) {
distance = navWidth;
}
if(isSafari() || isChrome()) {
nav.css('-webkit-transform', 'translate(' + distance + 'px,0)');
}
else{
nav.css('transform', 'translate(' + distance + 'px,0)');
}
if(distance == '0') {
$('.ssm-toggle-nav').addClass('ssm-nav-visible');
$('html').addClass('is-navOpen');
$('.ssm-overlay').fadeIn();
}
}
var hideNavigation = (function() {
nav.removeClass('ssm-nav-visible');
scrollNav(navWidth, settings.speed);
$('html').removeClass('is-navOpen');
$('.ssm-overlay').fadeOut();
});
var showNavigation = (function() {
nav.addClass('ssm-nav-visible');
scrollNav(0, settings.speed);
});
$('.ssm-toggle-nav').click(function(e) {
if(nav.hasClass('ssm-nav-visible')) {
hideNavigation();
}
else{
showNavigation();
}
e.preventDefault();
});
}
;
})(window.jQuery || window.$, document, window);
if (typeof module !== 'undefined' && module.exports) {
module.exports = slideAndSwipe;
}
(function() {
var pre = document.getElementsByTagName('pre'),
pl = pre.length;
for (var i = 0; i < pl; i++) {
pre[i].innerHTML = '' + pre[i].innerHTML;
var num = pre[i].innerHTML.split(/\n/).length;
for (var j = 0; j < num; j++) {
var line_num = pre[i].getElementsByTagName('span')[0];
line_num.innerHTML += '' + (j + 1) + '';
}
}
})();