Team:Georgia State/Dependencies/ScriptJS
From 2014.igem.org
/* ----------------- Start JS Document ----------------- */
var $ = jQuery.noConflict();
// Page Loader $(window).load(function(){ $('#loader').fadeOut(); });
$(document).ready(function($) { "use strict";
/*----------------------------------------------------*/ /* Hidder Header /*----------------------------------------------------*/
var headerEle = function(){ var $headerHeight = $('header').height(); $('.hidden-header').css({ 'height' : $headerHeight + "px" }); };
$(window).load(function () { headerEle(); });
$(window).resize(function () { headerEle(); });
/*----------------------------------------------------*/ /* Nice-Scroll /*----------------------------------------------------*/
$("html").niceScroll({ scrollspeed: 60, mousescrollstep: 38, cursorwidth: 6, cursorborder: 0, cursorcolor: '#111', autohidemode: false, zindex: 9999999, horizrailenabled: false, cursorborderradius: 0, });
/*----------------------------------------------------*/ /* Nav Menu & Search /*----------------------------------------------------*/
$(".nav > li:has(ul)").addClass("drop"); $(".nav > li.drop > ul").addClass("dropdown"); $(".nav > li.drop > ul.dropdown ul").addClass("sup-dropdown");
$('.show-search').click(function() { $('.search-form').fadeIn(300); $('.search-form input').focus(); }); $('.search-form input').blur(function() { $('.search-form').fadeOut(300); });
/*----------------------------------------------------*/ /* Back Top Link /*----------------------------------------------------*/
var offset = 200; var duration = 500; $(window).scroll(function() { if ($(this).scrollTop() > offset) { $('.back-to-top').fadeIn(400); } else { $('.back-to-top').fadeOut(400); } }); $('.back-to-top').click(function(event) { event.preventDefault(); $('html, body').animate({scrollTop: 0}, 600); return false; })
/*----------------------------------------------------*/
/* Sliders & Carousel
/*----------------------------------------------------*/
////------- Touch Slider var time = 4.4, $progressBar, $bar, $elem, isPause, tick, percentTime; $('.touch-slider').each(function(){ var owl = jQuery(this), sliderNav = $(this).attr('data-slider-navigation'), sliderPag = $(this).attr('data-slider-pagination'), sliderProgressBar = $(this).attr('data-slider-progress-bar');
if ( sliderNav == 'false' || sliderNav == '0' ) { var returnSliderNav = false }else { var returnSliderNav = true }
if ( sliderPag == 'true' || sliderPag == '1' ) { var returnSliderPag = true }else { var returnSliderPag = false }
if ( sliderProgressBar == 'true' || sliderProgressBar == '1' ) { var returnSliderProgressBar = progressBar var returnAutoPlay = false }else { var returnSliderProgressBar = false var returnAutoPlay = true }
owl.owlCarousel({ navigation : returnSliderNav, pagination: returnSliderPag, slideSpeed : 400, paginationSpeed : 400, lazyLoad : true, singleItem: true, autoHeight : true, autoPlay: returnAutoPlay, stopOnHover: returnAutoPlay, transitionStyle : "fade", afterInit : returnSliderProgressBar, afterMove : moved, startDragging : pauseOnDragging });
});
function progressBar(elem){
$elem = elem; buildProgressBar(); start();
}
function buildProgressBar(){$progressBar = $("
id:"progressBar" });
$bar = $("id:"bar" }); $progressBar.append($bar).prependTo($elem);
}
function start() { percentTime = 0; isPause = false; tick = setInterval(interval, 10);
}; function interval() {
if(isPause === false){ percentTime += 1 / time; $bar.css({ width: percentTime+"%" }); if(percentTime >= 100){ $elem.trigger('owl.next') } }
}
function pauseOnDragging(){ isPause = true; }
function moved(){ clearTimeout(tick); start(); }
////------- Projects Carousel $(".projects-carousel").owlCarousel({ navigation : true, pagination: false, slideSpeed : 400, stopOnHover: true,
autoPlay: 3000, items : 4, itemsDesktopSmall : [900,3],
itemsTablet: [600,2], itemsMobile : [479, 1] });
////------- Testimonials Carousel $(".testimonials-carousel").owlCarousel({ navigation : true, pagination: false, slideSpeed : 2500, stopOnHover: true,
autoPlay: 3000, singleItem:true,
autoHeight : true, transitionStyle : "fade" });
////------- Testimonials Carousel
$(".fullwidth-projects-carousel").owlCarousel({
navigation : false,
pagination: false,
slideSpeed : 400,
stopOnHover: true,
autoPlay: 3000, items : 5, itemsDesktopSmall : [900,3],
itemsTablet: [600,2], itemsMobile : [479, 1] });
////------- Custom Carousel $('.custom-carousel').each(function(){ var owl = jQuery(this), itemsNum = $(this).attr('data-appeared-items'), sliderNavigation = $(this).attr('data-navigation');
if ( sliderNavigation == 'false' || sliderNavigation == '0' ) { var returnSliderNavigation = false }else { var returnSliderNavigation = true } if( itemsNum == 1) { var returndeskitemsNum = 1; var desksmallitemsNum = 1; var tabletitemsNum = 1; } else if (itemsNum >= 2 && itemsNum < 4) { var deskitemsNum = itemsNum; var desksmallitemsNum = itemsNum - 1; var tabletitemsNum = itemsNum - 1; } else if (itemsNum >= 4 && itemsNum < 8) { var deskitemsNum = itemsNum -1; var desksmallitemsNum = itemsNum - 2; var tabletitemsNum = itemsNum - 3; } else { var deskitemsNum = itemsNum -3; var desksmallitemsNum = itemsNum - 6; var tabletitemsNum = itemsNum - 8; } owl.owlCarousel({ slideSpeed : 300, stopOnHover: true, autoPlay: 3000, navigation : returnSliderNavigation, pagination: false, lazyLoad : true, items : itemsNum, itemsDesktop : [1000,deskitemsNum], itemsDesktopSmall : [900,desksmallitemsNum], itemsTablet: [600,tabletitemsNum], itemsMobile : false, transitionStyle : "goDown", }); });
/*----------------------------------------------------*/ /* Tabs /*----------------------------------------------------*/
$('#myTab a').click(function (e) { e.preventDefault() $(this).tab('show') })
/*----------------------------------------------------*/
/* Css3 Transition
/*----------------------------------------------------*/
$('*').each(function(){ if($(this).attr('data-animation')) { var $animationName = $(this).attr('data-animation'), $animationDelay = "delay-"+$(this).attr('data-animation-delay'); $(this).appear(function() { $(this).addClass('animated').addClass($animationName); $(this).addClass('animated').addClass($animationDelay); }); } });
/*----------------------------------------------------*/
/* Pie Charts
/*----------------------------------------------------*/
var pieChartClass = 'pieChart',
pieChartLoadedClass = 'pie-chart-loaded';
function initPieCharts() { var chart = $('.' + pieChartClass); chart.each(function() { $(this).appear(function() { var $this = $(this), chartBarColor = ($this.data('bar-color')) ? $this.data('bar-color') : "#F54F36", chartBarWidth = ($this.data('bar-width')) ? ($this.data('bar-width')) : 150 if( !$this.hasClass(pieChartLoadedClass) ) { $this.easyPieChart({ animate: 2000, size: chartBarWidth, lineWidth: 2, scaleColor: false, trackColor: "#eee", barColor: chartBarColor, }).addClass(pieChartLoadedClass); } }); }); } initPieCharts();
/*----------------------------------------------------*/ /* Animation Progress Bars /*----------------------------------------------------*/
$("[data-progress-animation]").each(function() {
var $this = $(this);
$this.appear(function() {
var delay = ($this.attr("data-appear-animation-delay") ? $this.attr("data-appear-animation-delay") : 1);
if(delay > 1) $this.css("animation-delay", delay + "ms");
setTimeout(function() { $this.animate({width: $this.attr("data-progress-animation")}, 800);}, delay);
}, {accX: 0, accY: -50});
});
/*----------------------------------------------------*/ /* Milestone Counter /*----------------------------------------------------*/
jQuery('.milestone-block').each(function() { jQuery(this).appear(function() { var $endNum = parseInt(jQuery(this).find('.milestone-number').text()); jQuery(this).find('.milestone-number').countTo({ from: 0, to: $endNum, speed: 4000, refreshInterval: 60, }); },{accX: 0, accY: 0}); });
/*----------------------------------------------------*/ /* Nivo Lightbox /*----------------------------------------------------*/
$('.lightbox').nivoLightbox({ effect: 'fadeScale', keyboardNav: true, errorMessage: 'The requested content cannot be loaded. Please try again later.' });
/*----------------------------------------------------*/ /* Change Slider Nav Icons /*----------------------------------------------------*/
$('.touch-slider').find('.owl-prev').html(''); $('.touch-slider').find('.owl-next').html(''); $('.touch-carousel, .testimonials-carousel').find('.owl-prev').html(''); $('.touch-carousel, .testimonials-carousel').find('.owl-next').html(''); $('.read-more').append('');
/*----------------------------------------------------*/
/* Tooltips & Fit Vids & Parallax & Text Animations
/*----------------------------------------------------*/
$("body").fitVids();
$('.sh-tooltip').tooltip();
$('.bg-parallax').each(function() { $(this).parallax("30%", 0.2); });
$('.tlt').textillate({ loop: true, in: { effect: 'fadeInUp', delayScale: 2, delay: 50, sync: false, shuffle: false, reverse: true, }, out: { effect: 'fadeOutUp', delayScale: 2, delay: 50, sync: false, shuffle: false, reverse: true, }, });
/*----------------------------------------------------*/ /* Sticky Header /*----------------------------------------------------*/
(function() {
var docElem = document.documentElement, didScroll = false, changeHeaderOn = 100; document.querySelector( 'header' );
function init() { window.addEventListener( 'scroll', function() { if( !didScroll ) { didScroll = true; setTimeout( scrollPage, 250 ); } }, false ); }
function scrollPage() { var sy = scrollY(); if ( sy >= changeHeaderOn ) { $('.top-bar').slideUp(300); $("header").addClass("fixed-header"); $('.navbar-brand').css({ 'padding-top' : 19 + "px", 'padding-bottom' : 19 + "px" });
if (/iPhone|iPod|BlackBerry/i.test(navigator.userAgent) || $(window).width() < 479 ){ $('.navbar-default .navbar-nav > li > a').css({ 'padding-top' : 0 + "px", 'padding-bottom' : 0 + "px" }) }else{ $('.navbar-default .navbar-nav > li > a').css({ 'padding-top' : 20 + "px", 'padding-bottom' : 20 + "px" }) $('.search-side').css({ 'margin-top' : -7 + "px" }); };
} else { $('.top-bar').slideDown(300); $("header").removeClass("fixed-header"); $('.navbar-brand').css({ 'padding-top' : 27 + "px", 'padding-bottom' : 27 + "px" });
if (/iPhone|iPod|BlackBerry/i.test(navigator.userAgent) || $(window).width() < 479 ){ $('.navbar-default .navbar-nav > li > a').css({ 'padding-top' : 0 + "px", 'padding-bottom' : 0 + "px" }) }else{ $('.navbar-default .navbar-nav > li > a').css({ 'padding-top' : 28 + "px", 'padding-bottom' : 28 + "px" }) $('.search-side').css({ 'margin-top' : 0 + "px" }); };
} didScroll = false; }
function scrollY() { return window.pageYOffset || docElem.scrollTop; }
init();
})(); });
/*----------------------------------------------------*/
/* Portfolio Isotope
/*----------------------------------------------------*/
jQuery(window).load(function(){
var $container = $('#portfolio'); $container.isotope({ layoutMode : 'masonry', filter: '*', animationOptions: { duration: 750, easing: 'linear', queue: false, } });
$('.portfolio-filter ul a').click(function(){ var selector = $(this).attr('data-filter'); $container.isotope({ filter: selector, animationOptions: { duration: 750, easing: 'linear', queue: false, } }); return false; });
var $optionSets = $('.portfolio-filter ul'), $optionLinks = $optionSets.find('a'); $optionLinks.click(function(){ var $this = $(this); if ( $this.hasClass('selected') ) { return false; } var $optionSet = $this.parents('.portfolio-filter ul'); $optionSet.find('.selected').removeClass('selected'); $this.addClass('selected'); });
}); /* ----------------- End JS Document ----------------- */
// Styles Switcher JS
function setActiveStyleSheet(title) {
var i, a, main; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { a.disabled = true; if(a.getAttribute("title") == title) a.disabled = false; } }
}
function getActiveStyleSheet() {
var i, a; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title"); } return null;
}
function getPreferredStyleSheet() {
var i, a; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("rel").indexOf("alt") == -1 && a.getAttribute("title") ) return a.getAttribute("title"); } return null;
}
function createCookie(name,value,days) {
if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else expires = ""; document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null;
}
window.onload = function(e) {
var cookie = readCookie("style"); var title = cookie ? cookie : getPreferredStyleSheet(); setActiveStyleSheet(title);
}
window.onunload = function(e) {
var title = getActiveStyleSheet(); createCookie("style", title, 365);
}
var cookie = readCookie("style"); var title = cookie ? cookie : getPreferredStyleSheet(); setActiveStyleSheet(title);
$(document).ready(function(){
// Styles Switcher $(document).ready(function(){ $('.open-switcher').click(function(){ if($(this).hasClass('show-switcher')) { $('.switcher-box').css({'left': 0}); $('.open-switcher').removeClass('show-switcher'); $('.open-switcher').addClass('hide-switcher'); }else if(jQuery(this).hasClass('hide-switcher')) { $('.switcher-box').css({'left': '-212px'}); $('.open-switcher').removeClass('hide-switcher'); $('.open-switcher').addClass('show-switcher'); } }); });
//Top Bar Switcher $(".topbar-style").change(function(){ if( $(this).val() == 1){ $(".top-bar").removeClass("dark-bar"), $(".top-bar").removeClass("color-bar"), $(window).resize(); } else if( $(this).val() == 2){ $(".top-bar").removeClass("color-bar"), $(".top-bar").addClass("dark-bar"), $(window).resize(); } else if( $(this).val() == 3){ $(".top-bar").removeClass("dark-bar"), $(".top-bar").addClass("color-bar"), $(window).resize(); } });
//Layout Switcher $(".layout-style").change(function(){ if( $(this).val() == 1){ $("#container").removeClass("boxed-page"), $(window).resize(); } else{ $("#container").addClass("boxed-page"), $(window).resize(); } });
//Background Switcher $('.switcher-box .bg-list li a').click(function() { var current = $('.switcher-box select[id=layout-style]').find('option:selected').val(); if(current == '2') { var bg = $(this).css("backgroundImage"); $("body").css("backgroundImage",bg); } else { alert('Please select boxed layout'); } });
});