File: D:/HostingSpaces/SBogers93/fitale.nl/wwwroot/js/main.js
/**
* Created by Pascal on 30/09/15.
*/
$(function () {
resizer();
$(window).resize(function () {
resizer();
});
$(window).scroll(function () {
scroller();
});
jQuery.each(jQuery('textarea[data-autoresize]'), function() { //autosize TextArea
var offset = this.offsetHeight - this.clientHeight;
var resizeTextarea = function(el) {
jQuery(el).css('height', 'auto').css('height', el.scrollHeight + offset);
};
jQuery(this).on('keyup input', function() { resizeTextarea(this); }).removeAttr('data-autoresize');
});
$('header .menu-icon').click(function(){
$('header nav').toggleClass('active');
$('header .link').toggleClass('show');
});
$('.internalLink').click(function(){
animateScroll($(this), 120);
});
//make star canvas
if($('canvas').length > 0) $('canvas').constellation();
$("img").one("load", function() {
resizer();
}).each(function() {
if(this.complete) $(this).load();
});
});
function resizer() {
var icon = $('header .menu-icon');
$('header').height(icon.width());
icon.height(icon.width());
$('.vision-row .button').height($('.vision-row .button').width());
$('.vision-row .business').css({
'padding-top': (icon.height() + 10),
'padding-bottom': (200 - (icon.height() + 10)),
'height' : ($('.vision-row .vision').height())
});
var fullWidth = $('header nav').width();
var menuWidth = $('header nav .menu').width();
var sideWidth = ((fullWidth - menuWidth)/2);
$('header nav .background').width((fullWidth + sideWidth - icon.width())).css('left', ((sideWidth+icon.width())+'px'));
$('.services-row').css('margin-bottom', ('-'+(($('.services-row').height() - $('.services-row .background').height())/2)+'px'));
$('.vision-row .vision').css('margin-top', '-'+(icon.height()/2)+'px');
$('.vision-row .background').height(($('.vision-row .business').height()+200)*1.5);
//redraw stars canvas
if($('.vision-row canvas').length > 0) $('.vision-row canvas').constellation().css('top', icon.height());
}
function scroller() {
if ($(this).scrollTop() >= 100) { // this refers to window
$('header').addClass('scrolled');
}
else{
$('header').removeClass('scrolled');
}
if(isElementPartInViewport($('#vision'))) {
$('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
$('.main nav .menu .internalLink[data-link=vision], .mobile .mb_content nav ul .internalLink[data-link=vision]').addClass('active');
}
if(isElementFullInViewport($('#mkb'))) {
$('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
$('.main nav .menu .internalLink[data-link=mkb], .mobile .mb_content nav ul .internalLink[data-link=mkb]').addClass('active');
}
if(isElementFullInViewport($('#licentie'))) {
$('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
$('.main nav .menu .internalLink[data-link=license], .mobile .mb_content nav ul .internalLink[data-link=license]').addClass('active');
}
if(isElementFullInViewport($('#services'))) {
$('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
$('.main nav .menu .internalLink[data-link=services], .mobile .mb_content nav ul .internalLink[data-link=services]').addClass('active');
}
if(isElementPartInViewport($('#news'))) {
$('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
$('.main nav .menu .internalLink[data-link=news], .mobile .mb_content nav ul .internalLink[data-link=news]').addClass('active');
}
if(isElementFullInViewport($('#methods'))) {
$('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
$('.main nav .menu .internalLink[data-link=methods], .mobile .mb_content nav ul .internalLink[data-link=methods]').addClass('active');
}
if(isElementFullInViewport($('#references-overview'))) {
$('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
$('.main nav .menu .internalLink[data-link=references], .mobile .mb_content nav ul .internalLink[data-link=references]').addClass('active');
}
if(isElementFullInViewport($('#contact'))) {
$('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
$('.main nav .menu .internalLink[data-link=contact], .mobile .mb_content nav ul .internalLink[data-link=contact]').addClass('active');
}
}
function isElementFullInViewport(el) {
//special bonus for those using jQuery
if(el.length > 0){
if (typeof jQuery === "function" && el instanceof jQuery) {
el = el[0];
}
var rect = el.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.bottom <= (window.innerHeight || $(window).height())
);
}
}
function isElementPartInViewport(el)
{
if(el.length > 0) {
//special bonus for those using jQuery
if (typeof jQuery !== 'undefined' && el instanceof jQuery) el = el[0];
var rect = el.getBoundingClientRect();
// DOMRect { x: 8, y: 8, width: 100, height: 100, top: 8, right: 108, bottom: 108, left: 8 }
var windowHeight = (window.innerHeight || document.documentElement.clientHeight);
var windowWidth = (window.innerWidth || document.documentElement.clientWidth);
var vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) >= 0);
var horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) >= 0);
return (vertInView && horInView);
}
}
function isElementPartExtraInViewport(el, margin)
{
if(el.length > 0) {
//special bonus for those using jQuery
if (typeof jQuery !== 'undefined' && el instanceof jQuery) el = el[0];
var rect = el.getBoundingClientRect();
// DOMRect { x: 8, y: 8, width: 100, height: 100, top: 8, right: 108, bottom: 108, left: 8 }
var windowHeight = (window.innerHeight || document.documentElement.clientHeight);
var windowWidth = (window.innerWidth || document.documentElement.clientWidth);
var vertInView = (rect.top <= (windowHeight - margin)) && ((rect.top + rect.height) >= 0);
var horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) >= 0);
return (vertInView && horInView);
}
}
function tabletOrMobile() {
if(window.navigator.userAgent.match(/Mobile/i)
|| window.navigator.userAgent.match(/iPhone/i)
|| window.navigator.userAgent.match(/iPod/i)
|| window.navigator.userAgent.match(/IEMobile/i)
|| window.navigator.userAgent.match(/Windows Phone/i)
|| window.navigator.userAgent.match(/Android/i)
|| window.navigator.userAgent.match(/BlackBerry/i)
|| window.navigator.userAgent.match(/webOS/i)) {
return true;
//alert('True - Mobile - ' + navigator.userAgent);
} else {
//alert('False - Mobile - ' + navigator.userAgent);
//return false;
}
if(window.navigator.userAgent.match(/Tablet/i)
|| window.navigator.userAgent.match(/iPad/i)
|| window.navigator.userAgent.match(/Nexus 7/i)
|| window.navigator.userAgent.match(/Nexus 10/i)
|| window.navigator.userAgent.match(/KFAPWI/i)) {
return true;
//alert('True - Tablet - ' + navigator.userAgent);
}
if($('body').width() <= 500){
return true;
}
else {
//alert('False - Tablet - ' + navigator.userAgent);
//return false;
}
}
function animateScroll(e, offset, time){
offset = typeof offset !== 'undefined' ? offset : 60;
time = typeof time !== 'undefined' ? time : 600;
var scrollTo = e.data('link');
$('html,body').animate({
scrollTop: $('#'+scrollTo).offset().top - offset
}, time);
}