File: /var/www/vhosts/creativefellows.nl/dhwd.creativefellows.nl/js/app.js
$(document).foundation().ready(function(){
$(".reveal-video").showVideo();
$(".toggle-navigation").toggleNavigation();
$("img.lazy").lazyload({
effect : "fadeIn"
});
$('.vertical-align-columns-middle').verticalMiddle();
$('.image-showcase').slick({
pauseOnHover:true,
autoplay: true,
autoplaySpeed: 4000,
dots: true,
infinite: true,
speed: 500,
fade: true,
cssEase: 'linear',
arrows: false
});
// showcase foreground hide on scroll
$(window).scroll(function(){
$(".case-foreground .column-wrapper").css("opacity", 1 - $(window).scrollTop() / 250);
});
// enlarge images
$(".image-impression img").enlargeImage();
});
$.fn.enlargeImage = function(){
return this.each(function(){
var image = $(this);
var tp = $('<div class="reveal large text-center" data-reveal data-animation-in="scale-in-up" data-animation-out="scale-out-down"><button class="close-button" data-close aria-label="Close modal" type="button"><span aria-hidden="true">×</span></button></div>');
var img_wrapper = $('<div class="show-large-image"></div>');
var has_closed = false;
var reveal;
image.init = function()
{
// duplicate image
image.duplicate()
reveal = new Foundation.Reveal(tp,{"speed":500});
image.on("click",function(){
reveal.open();
});
}
image.duplicate = function()
{
var img = image.clone();
image.wrap(img_wrapper);
tp.append(img);
tp.insertAfter(image);
}
// init the plugin
image.init();
});
}
/*
* Vertical align columns middle
*/
$.fn.verticalMiddle = function(){
var row = $(this);
var columns = row.find(".columns");
row.height( row.height() );
$(window).resize(function() {
$('.vertical-align-columns-middle').css('height','auto');
row.height( row.height() );
});
setTimeout(function(){
columns.each(function(){
if( !$(this).hasClass("no-vertical-align") ){
$(this).addClass("vertical-align-middle");
};
});
},500);
}
/*
* show video on click
*/
$.fn.showVideo = function()
{
$(this).on("click",function(){
var el = $(this);
var prnt = el.closest(".image-showcase");
var video = el.attr("data-video");
var reveal_el = $('<div class="reveal large" data-reveal data-animation-in="fade-in" data-animation-out="fade-out">');
var iframe = $('<div class="embed-erternal"><iframe width="100%" height="500" src="" class="video-iframe" frameborder="0" allowfullscreen></iframe></div>');
var button = $('<button class="close-button" data-close aria-label="Close modal" type="button"><span aria-hidden="true">×</span></button>');
reveal_el.append(iframe).append(button);
// set video
iframe.find(".video-iframe").attr("src",video+"?rel=0&autoplay=1");
// insert in dom
reveal_el.insertAfter(prnt);
var elem = new Foundation.Reveal( reveal_el,{"speed":500});
elem.open();
});
}
/*
* toggle navigation
*/
$.fn.toggleNavigation = function()
{
var shadeout = null;
var fadeDelay = 500;
var menu_el = new Foundation.ResponsiveToggle('.toggle-menu');
var toggle_nav = $(this);
$(this).on("click",function(event)
{
// toggle open class
$(this).toggleClass('open');
$("#header").toggleClass('open');
// create mask element if not exists
if( $(".shade-out").length == 0 ) createShadeOut();
// open
if( !$(this).hasClass("open") )
{
// hide shade-out
shadeout.removeClass("is-open").delay(fadeDelay).fadeOut("fast");
}
else
{
// show shade-out
shadeout.addClass("is-open").hide().fadeIn("fast");
}
});
var createShadeOut = function()
{
shadeout = $('<div class="shade-out"></div>').hide();
shadeout.insertAfter("#header");
shadeout.on("click",function(event)
{
// fade shade
hideShadeOut();
// close menu
menu_el.toggleMenu('close');
//
toggle_nav.toggleClass('open');
});
}
var hideShadeOut = function()
{
// hide shade-out
shadeout.removeClass("is-open").delay(fadeDelay).fadeOut("fast");
}
}
/*
* fixed navigation
*/
$.fn.fixednav = function()
{
var shrinkHeader = 48;
$(window).scroll(function() {
var scroll = getCurrentScroll();
if(scroll >= shrinkHeader)
{
$('#header').addClass('shrink');
$('.header-spacer').addClass('shrink');
}
else
{
$('#header').removeClass('shrink');
$('.header-spacer').removeClass('shrink');
}
});
function getCurrentScroll() {
return window.pageYOffset;
}
function checkScrollPosition(){
var scroll = getCurrentScroll();
if(scroll >= shrinkHeader)
{
$('#header').addClass('shrink');
$('.header-spacer').addClass('shrink');
}
}
checkScrollPosition();
}