173 lines
6.2 KiB
JavaScript
173 lines
6.2 KiB
JavaScript
// grab some heights
|
|
var $fullheight = $('.head').innerHeight(),
|
|
$shrinkheight = $('shrink').innerHeight(),
|
|
$menuhheight = $('main_menu').innerHeight(),
|
|
$minheight = $(window).height() + 10 + $menuhheight + $shrinkheight;
|
|
|
|
$(document).ready(function() {
|
|
// add header height as margin to body, set min-height so header can shrink without causing problems
|
|
$('body').css({ 'margin-top': $fullheight, 'min-height': $minheight });
|
|
|
|
// Back to top link
|
|
$('.backtotop').click(function () {
|
|
$('body,html').animate({
|
|
scrollTop: 0
|
|
}, 500);
|
|
return false;
|
|
});
|
|
|
|
// Responsive Menu
|
|
$(".toggle_link").click(function () {
|
|
$("#menu").toggleClass("active");
|
|
});
|
|
|
|
$(".parent a").attr("aria-haspopup", "true");
|
|
$(".parent a").click(function () {
|
|
$(this).parent().toggleClass("open");
|
|
});
|
|
|
|
// Search
|
|
$('a[href="#search"]').click(function(){
|
|
$('#search').addClass('open');
|
|
$('#search input').focus();
|
|
$('body').addClass('overflow');
|
|
});
|
|
|
|
$('#search, #search button.close').on('click keyup', function(event) {
|
|
if (event.target == this || event.target.className == 'close' || event.keyCode == 27) {
|
|
$(this).removeClass('open');
|
|
$('body').removeClass('overflow');
|
|
}
|
|
});
|
|
|
|
// Style Switch
|
|
$(".switch span").click(function(){
|
|
var id = $(this).attr("id");
|
|
|
|
// adjust link here
|
|
$("#switch_style").attr("href", "/css/" + id + ".css");
|
|
});
|
|
|
|
if($('.articles').find('div.wrapper').length != 0){
|
|
$('.switch').hide();
|
|
}else{
|
|
$('.switch').show();
|
|
}});
|
|
|
|
|
|
$(window).scroll(function() {
|
|
var $shrunkheight = $('.head').innerHeight();
|
|
|
|
// shrink header on scroll
|
|
if ($(this).scrollTop() > 80) {
|
|
$('.head .row').addClass("shrink");
|
|
$('body').css({ 'margin-top': $shrunkheight });
|
|
} else{
|
|
$('.head .row').removeClass("shrink");
|
|
$('body').css({ 'margin-top': $fullheight });
|
|
}
|
|
});
|
|
|
|
// lightbox stuff
|
|
$( function(){
|
|
var activityIndicatorOn = function() {
|
|
$( '<div id="imagelightbox-loading"><div></div></div>' ).appendTo( 'body' );
|
|
},
|
|
activityIndicatorOff = function() {
|
|
$( '#imagelightbox-loading' ).remove();
|
|
},
|
|
|
|
// OVERLAY
|
|
overlayOn = function() {
|
|
$( '<div id="imagelightbox-overlay"></div>' ).appendTo( 'body' );
|
|
},
|
|
overlayOff = function() {
|
|
$( '#imagelightbox-overlay' ).remove();
|
|
},
|
|
|
|
// CLOSE BUTTON
|
|
closeButtonOn = function( instance ) {
|
|
$( '<button type="button" id="imagelightbox-close" title="Close"><i class="fa fa-times-circle"></i></button>' ).appendTo( 'body' ).on( 'click touchend', function(){ $( this ).remove(); instance.quitImageLightbox(); return false; });
|
|
},
|
|
closeButtonOff = function() {
|
|
$( '#imagelightbox-close' ).remove();
|
|
},
|
|
|
|
// CAPTION
|
|
captionOn = function() {
|
|
var description = $( 'a[href="' + $( '#imagelightbox' ).attr( 'src' ) + '"] img' ).attr( 'alt' );
|
|
if( description.length > 0 )
|
|
$( '<div id="imagelightbox-caption">' + description + '</div>' ).appendTo( 'body' );
|
|
},
|
|
captionOff = function() {
|
|
$( '#imagelightbox-caption' ).remove();
|
|
},
|
|
|
|
// NAVIGATION
|
|
navigationOn = function( instance, selector ) {
|
|
var images = $( selector );
|
|
if( images.length ) {
|
|
var nav = $( '<div id="imagelightbox-nav"></div>' );
|
|
for( var i = 0; i < images.length; i++ )
|
|
nav.append( '<button type="button"></button>' );
|
|
nav.appendTo( 'body' );
|
|
nav.on( 'click touchend', function(){ return false; });
|
|
var navItems = nav.find( 'button' );
|
|
navItems.on( 'click touchend', function(){
|
|
var $this = $( this );
|
|
if( images.eq( $this.index() ).attr( 'href' ) != $( '#imagelightbox' ).attr( 'src' ) )
|
|
instance.switchImageLightbox( $this.index() );
|
|
navItems.removeClass( 'active' );
|
|
navItems.eq( $this.index() ).addClass( 'active' );
|
|
return false;
|
|
})
|
|
.on( 'touchend', function(){ return false; });
|
|
}
|
|
},
|
|
navigationUpdate = function( selector ) {
|
|
var items = $( '#imagelightbox-nav button' );
|
|
items.removeClass( 'active' );
|
|
items.eq( $( selector ).filter( '[href="' + $( '#imagelightbox' ).attr( 'src' ) + '"]' ).index( selector ) ).addClass( 'active' );
|
|
},
|
|
navigationOff = function() {
|
|
$( '#imagelightbox-nav' ).remove();
|
|
},
|
|
|
|
// ARROWS
|
|
arrowsOn = function( instance, selector ) {
|
|
var $arrows = $( '<button type="button" class="imagelightbox-arrow imagelightbox-arrow-left"></button><button type="button" class="imagelightbox-arrow imagelightbox-arrow-right"></button>' );
|
|
$arrows.appendTo( 'body' );
|
|
$arrows.on( 'click touchend', function( e ) {
|
|
e.preventDefault();
|
|
var $this = $( this ),
|
|
$target = $( selector + '[href="' + $( '#imagelightbox' ).attr( 'src' ) + '"]' ),
|
|
index = $target.index( selector );
|
|
|
|
if( $this.hasClass( 'imagelightbox-arrow-left' ) ) {
|
|
index = index - 1;
|
|
if( !$( selector ).eq( index ).length )
|
|
index = $( selector ).length;
|
|
}
|
|
else {
|
|
index = index + 1;
|
|
if( !$( selector ).eq( index ).length )
|
|
index = 0;
|
|
}
|
|
instance.switchImageLightbox( index );
|
|
return false;
|
|
});
|
|
},
|
|
arrowsOff = function() {
|
|
$( '.imagelightbox-arrow' ).remove();
|
|
};
|
|
|
|
// ALL COMBINED
|
|
var selectorF = 'a[data-imagelightbox="f"]';
|
|
var instanceF = $( selectorF ).imageLightbox( {
|
|
onStart: function() { overlayOn(); closeButtonOn( instanceF ); arrowsOn( instanceF, selectorF ); },
|
|
onEnd: function() { overlayOff(); captionOff(); closeButtonOff(); arrowsOff(); activityIndicatorOff(); },
|
|
onLoadStart: function() { captionOff(); activityIndicatorOn(); },
|
|
onLoadEnd: function() { captionOn(); activityIndicatorOff(); $( '.imagelightbox-arrow' ).css( 'display', 'block' ); }
|
|
});
|
|
});
|