Difference between revisions of "Team:William and Mary"

Line 1: Line 1:
{{Team:William_and_Mary/CSS_RESET}}
+
var searchVisible = 0;
 +
var transparent = true;
  
<html lang="en">
+
var transparentDemo = true;
<cfheader name="X-XSS-Protection" value="1">
+
var fixedTop = false;
    <head>
+
        <meta charset="utf-8" />
+
        <link rel="icon" type="image/png" href="assets/img/favicon.ico">
+
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+
        <title>William & Mary</title>
+
        <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />
+
        <link href="https://2016.igem.org/Team:William_and_Mary/bootstrap?action=raw&amp;ctype=text/css" rel="stylesheet" />
+
<link href="https://2016.igem.org/Team:William_and_Mary/fixbootstrap?action=raw&amp;ctype=text/css" rel="stylesheet" type="text/css"/>
+
        <link href="https://2016.igem.org/Team:William_and_Mary/rubik?action=raw&amp;ctype=text/css" rel="stylesheet"/>
+
        <link href="https://2016.igem.org/Team:William_and_Mary/demo?action=raw&amp;ctype=text/css" rel="stylesheet"/>
+
        <link href="https://2016.igem.org/Team:William_and_Mary/jsquerybxslidercss?action=raw&amp;ctype=text/css" rel="stylesheet"/>
+
+
        <!--    Fonts and icons    -->
+
        <link href="https://2016.igem.org/Team:William_and_Mary/font-awesome?action=raw&amp;ctype=text/css" rel="stylesheet"/>
+
        <link href='https://2016.igem.org/Team:William_and_Mary/droid-serif?action=raw&amp;ctype=text/css' rel='stylesheet' type='text/css'/>
+
        <link href="https://2016.igem.org/Team:William_and_Mary/pe-icon-7stroke?action=raw&amp;ctype=text/css" rel="stylesheet"/>
+
        <link href="https://2016.igem.org/Team:William_and_Mary/Rubik-Fonts?action=raw&amp;ctype=text/css" rel="stylesheet" />
+
       
+
<!-- the wiki settings in the section immediately below are from UC San Diego 2015 -->
+
<!-- fixed by J-Mitch of W&M -->
+
  
<style type="text/css">
+
var navbar_initialized = false;
/* WIKI SETTINGS*/
+
+
/* Hide first heading */
+
.firstHeading {
+
display: none;
+
}
+
/* Visited hyperlinks */
+
                        a:visited{
+
                                color: #393d31;
+
                        }
+
  
/*-- Remove borders, float content left and remove padding/margin */
+
var big_image;
#globalWrapper, #content{
+
var scroll;
background-color: transparent;
+
var project_content;
border: none;
+
var $project;
float: center;
+
scroll = ( 2500 - $(window).width() ) / $(window).width();
                                width: 100.15%; /* found to be the magic number (: */
+
margin-left: -3px;
+
margin-top: -8px;
+
padding: auto;
+
}
+
  
/*left align Black Menu Bar */
+
var $ScrollTop;
#top_menu_inside {
+
var $ScrollBot;
margin-left: 0px;  
+
 
}
+
var pixels;
.centerImage
+
 
{
+
var modal;
text-align:center;
+
var $project_content;
display:block;
+
 
}
+
var test = true;      
.wraptocenter {
+
 
  display: table-cell;
+
var timerStart = Date.now();
  text-align: center;
+
var delay;
  vertical-align: middle;
+
 
  width: 200px;
+
var no_of_elements = 0;
  height: 200px;
+
var window_height;
  background-color: #999;
+
var window_width;
}
+
 
.wraptocenter * {
+
var content_opacity = 0;
  vertical-align: middle;
+
var content_transition = 0;
}
+
var no_touch_screen = false;
</style>
+
 
 +
var burger_menu;
  
    </head>
 
    <body class="landing-page">
 
<!--
 
        <div class="loading ">
 
            <div class="loading-container">
 
                <p>loading...</p>
 
                <img class="loader" src="assets/img/rubik.svg"/>
 
            </div>
 
        </div>
 
-->
 
        <nav class="navbar navbar-default navbar-transparent navbar-fixed-top" role="navigation">
 
            <!-- if you want to keep the navbar hidden you can add this class to the navbar "navbar-burger"-->
 
            <div class="container">
 
                <div class="navbar-header">
 
                    <button id="menu-toggle" type="button" class="navbar-toggle" data-toggle="collapse" data-target="#example">
 
                    <span class="sr-only">Toggle navigation</span>
 
                    <span class="icon-bar bar1"></span>
 
                    <span class="icon-bar bar2"></span>
 
                    <span class="icon-bar bar3"></span>
 
                    </button>
 
                    <a class="navbar-brand">
 
                    William & Mary
 
                    </a>
 
                </div>
 
                <div class="collapse navbar-collapse">
 
                    <ul class="nav navbar-nav navbar-right navbar-uppercase">
 
                        <li class="social-links">
 
                            <a href="https://www.facebook.com/WMiGEM16/?fref=ts">
 
                            <i class="fa fa-facebook"></i>
 
                            </a>
 
                            <a href="https://twitter.com/wmigem">
 
                            <i class="fa fa-twitter"></i>
 
</a>
 
<!--
 
                            <a href="#">
 
                            <i class="fa fa-instagram"></i>
 
                            </a>
 
-->
 
                        </li>
 
                        <li>
 
                            <a href="template.html">
 
                            Overview
 
                            </a>
 
                        </li>
 
                        <li>
 
                            <a href="description.html">
 
                            Description
 
                            </a>
 
                        </li>
 
                        <li>
 
                            <a href="" data-scroll="true" data-id="#projects">
 
                            Parts
 
                            </a>
 
                        </li>
 
                        <li>
 
                            <a href="" data-scroll="true" data-id="#clients">
 
                            Results
 
                            </a>
 
                        </li>
 
                        <li>
 
                            <a href="" data-scroll="true" data-id="#team">
 
                            Modeling
 
                            </a>
 
                        </li>
 
                        <li>
 
                            <a href="" data-scroll="true" data-id="#numbers">
 
                            Collaboration
 
                            </a>
 
                        </li>
 
                        <li>
 
                            <a href="" data-scroll="true" data-id="#contact">
 
                            Team
 
                            </a>
 
                        </li>
 
                    </ul>
 
                </div>
 
            </div>
 
        </nav>
 
 
          
 
          
 +
$(document).ready(function(){
 +
    BrowserDetect.init();
 +
   
 +
    if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version <= 9){
 +
        $('body').html(better_browser); 
 +
    }
 +
 +
    window_width = $(window).width();
 +
    window_height = $(window).height();
 +
 +
    burger_menu = $('nav[role="navigation"]').hasClass('navbar-burger') ? true : false;
 +
   
 +
    if (!Modernizr.touch){
 +
        $('body').addClass('no-touch');
 +
        no_touch_screen = true;
 +
    }
 +
   
 +
    rubik.initAnimationsCheck();
 +
   
 +
    // Init navigation toggle for small screens 
 +
    if(window_width < 992 || burger_menu){
 +
        rubik.initRightMenu(); 
 +
    }
 +
 +
    if(window_width < 992){
 +
        $('.over-area').each(function(){
 +
            var click = $(this).attr("onClick");
 +
            if(click == ''){
 +
                src = "rubik.showModal(this)";
 +
                $(this).attr("onClick", src);
 +
            }
 +
        });
 
          
 
          
 +
        rubik.checkResponsiveImage();
 +
    }
 +
   
 +
    setTimeout(function(){
 +
        $('.loading').css('opacity','0');
 +
        setTimeout(function(){
 +
            $('.loading').addClass('hide');
 +
        }, 500);
 +
    }, 3000);
 
          
 
          
 +
   
 +
    if($('#contactUsMap').length != 0){
 +
        rubik.initGoogleMaps(); 
 +
    }
 +
   
 +
    if($('.content-with-opacity').length != 0){
 +
        content_opacity = 1;
 +
    }
 +
 +
});
 +
 +
 +
$(window).load(function(){
 +
   
 +
    //after the content is loaded we reinitialize all the waypoints for the animations
 +
    rubik.initAnimationsCheck();
 +
   
 +
}); 
 +
 +
//activate collapse right menu when the windows is resized
 +
$(window).resize(function(){
 +
    if($(window).width() < 992){
 +
        rubik.initRightMenu(); 
 +
        rubik.checkResponsiveImage();
 +
    }
 +
    if($(window).width() > 992 && !burger_menu){
 +
        $('nav[role="navigation"]').removeClass('navbar-burger');
 +
        rubik.misc.navbar_menu_visible = 1;
 +
        navbar_initialized = false;
 +
    }
 +
});
 +
 +
$(window).on('scroll',function(){
 +
  rubik.checkScrollForTransparentNavbar();   
 +
 
 +
  if(window_width > 992){
 +
        rubik.checkScrollForParallax();
 +
  }
 +
 
 +
  if(content_opacity == 1){
 +
      rubik.checkScrollForContentTransitions();
 +
  }           
 +
});
 +
 +
$('a[data-scroll="true"]').click(function(e){       
 +
    var scroll_target = $(this).data('id');
 +
    var scroll_trigger = $(this).data('scroll');
 +
   
 +
    if(scroll_trigger == true && scroll_target !== undefined){
 +
        e.preventDefault();
 
          
 
          
          
+
         $('html, body').animate({
       
+
            scrollTop: $(scroll_target).offset().top - 50
         <div class="wrapper">
+
         }, 1000);
       
+
    }
<!--PRESENTATION PAGE INFORMATION BEGINS HERE-->
+
               
 +
});
  
<div class="section section-header" id="overview">
+
$('.section-we-made-2 .scroller').mousemove(
<div class="parallax pattern-image filter filter-gradient-purple" data-color="gold">
+
    function( event ){
<img alt="..." src="https://static.igem.org/mediawiki/2016/c/ce/T--William_and_Mary--rubik-background.jpg">
+
      if (!Modernizr.touch) {
<div class="container">
+
        if(event.clientX < 200) {
<div class="content">
+
            $(this).css("transform","translateX(0)");
<p class="section-header h1WM" style="font-family:Slim-Joe; margin: 30px 0 15px;">Circuit Control</p>
+
        }
<div class="separator-container">
+
        if(event.clientX > 200 && event.clientX < $(window).width()-200 && event.clientX % 2 == 0 ) {
<div class="separator line-separator">✻</div>
+
            pixels = -event.clientX * scroll;
</div>
+
           
<h5>creating a toolbox allowing for precision circuit control</h5>
+
            $(this).css("transform","translateX(" + pixels + "px)");
</div>
+
        }
</div>
+
        if(event.clientX > $(window).width()-200) {
</div>
+
            pixels = -(2500 - $(window).width());
<a href="" data-scroll="true" data-id="#description" class="scroll-arrow hidden-xs hidden-sm">
+
            $(this).css("transform","translateX(" + pixels + "px)");
<i class="fa fa-angle-down"></i>
+
        }
</a>
+
        $('.projects').css('overflow','hidden');
</div>
+
      }
 +
    }
 +
);
  
<div class="section section-we-are-1" id="description">
 
<div class="text-area">
 
<div class="container">
 
<div class="row">
 
<div class="title">
 
<p class="h2WM">Project "abstract" here</p>
 
<div class="separator-container">
 
<div class="separator line-separator">✻</div>
 
</div>
 
<p class="large">
 
What have we done this year, + pictures that can be scrolled through
 
in the 'carousel' below.
 
</p>
 
</div>
 
</div>
 
</div>
 
</div>
 
<div id="carousel">
 
<div id="section-we-are-1" class="carousel slide add-animation-stopped-1" data-interval="20000">
 
<!-- Wrapper for slides -->
 
<div class="carousel-inner pattern-image animate">
 
<div class="item  active">
 
<img alt="..." class="full-image" src="assets/img/builder/projects/project.jpg">
 
</div>
 
<div class="item">
 
<img alt="..." class="full-image" src="assets/img/builder/projects/project.jpg">
 
</div>
 
</div>
 
<!-- Controls -->
 
<a class="left carousel-control" href="#section-we-are-1" data-slide="prev"><span class="fa fa-angle-left hidden-md hidden-lg"></span></a>     
 
<a class="right carousel-control" href="#section-we-are-1" data-slide="next"><span class="fa fa-angle-right hidden-ms hidden-lg"></span></a>     
 
</div>
 
</div>
 
</div>
 
  
<!-- Section "What We do" example 4: Big Title & 4 columns icons -->
+
   
<div class="section section-we-do-2" id="workflow2">
+
rubik = {
<div class="container">
+
    misc:{
<div class="row">
+
        navbar_menu_visible: 0
<div class="title">
+
    },
<h5 class="text-gray">Big Title &amp; 4 Columns Icons</h5>
+
    initAnimationsCheck: function(){
<h2>filler title</h2>
+
        $('[class*="add-animation"]').each(function(){
<div class="separator-container">
+
          offset_diff = 30;
<div class="separator line-separator">✻</div>
+
          if($(this).hasClass('title')){
</div>
+
              offset_diff = 110;
<p>
+
          }
I don't know what can go here, something cool I guess
+
         
</p>
+
          var waypoints = $(this).waypoint(function(direction) {
</div>
+
                if(direction == 'down'){
<div class="col-md-3">
+
                        $(this.element).addClass('animate');   
<div class="card">
+
                  } else {
<div class="icon">
+
                      $(this.element).removeClass('animate');
<i class="pe-7s-piggy"></i>
+
                  }
</div>
+
                }, {
<h3>section</h3>
+
                  offset: window_height - offset_diff
<p>text below that section</p>
+
          });
</div>
+
        });
</div>
+
 
<div class="col-md-3">
+
    },
<div class="card">
+
    initRightMenu: function(){ 
<div class="icon">
+
        if(!navbar_initialized){
<i class="pe-7s-headphones"></i>
+
            $nav = $('nav[role="navigation"]');
</div>
+
            $nav.addClass('navbar-burger');
<h3>ugh</h3>
+
           
<p>so much filler text wow</p>
+
            $navbar = $nav.find('.navbar-collapse').first().clone(true);
</div>
+
             
</div>
+
            ul_content = '';
<div class="col-md-3">
+
           
<div class="card">
+
            $navbar.children('ul').each(function(){
<div class="icon">
+
                content_buff = $(this).html();
<i class="pe-7s-pen"></i>
+
                ul_content = ul_content + content_buff; 
</div>
+
            });
<h3>kvndkvkldsv</h3>
+
           
<p>ipsum lorem dolor</p>
+
            ul_content = '<ul class="nav navbar-nav">' + ul_content + '</ul>';
</div>
+
            $navbar.html(ul_content);
</div>
+
           
<div class="col-md-3">
+
            $('body').append($navbar);
<div class="card">
+
                           
<div class="icon">
+
            background_image = $navbar.data('nav-image');
<i class="pe-7s-plugin"></i>
+
            if(background_image != undefined){
</div>
+
                $navbar.css('background',"url('" + background_image + "')")
<h3>:(</h3>
+
                      .removeAttr('data-nav-image')
<p>:-) :-) :-)</p>
+
                      .css('background-size',"cover")
</div>
+
                      .addClass('has-image');               
</div>
+
            }
</div>
+
           
</div>
+
            $toggle = $('.navbar-toggle');
</div>
+
           
<!-- End Section "What We do" example 3: Small Title & 3 columns icons -->
+
            $navbar.find('a').removeClass('btn btn-round btn-default');
 +
            $navbar.find('button').removeClass('btn-round btn-fill btn-info btn-primary btn-success btn-danger btn-warning btn-neutral');
 +
            $navbar.find('button').addClass('btn-simple btn-block');
 +
 
 +
            $link = $navbar.find('a');
 +
           
 +
            $link.click(function(e){
 +
                var scroll_target = $(this).data('id');
 +
                var scroll_trigger = $(this).data('scroll');
 +
               
 +
                if(scroll_trigger == true && scroll_target !== undefined){
 +
                    e.preventDefault();
 +
 
 +
                    $('html, body').animate({
 +
                        scrollTop: $(scroll_target).offset().top - 50
 +
                    }, 1000);
 +
                }
 +
               
 +
            });
  
<!-- Section "Our Projects" example 5: Single Line Photos -->
+
           
<div class="section section-we-made-2 section-with-hover" id="projects2">
+
            $toggle.click(function (){   
<div class="projects" style="overflow: hidden;">
+
<div class="text-area">
+
<div class="title">
+
<h5 class="text-gray">Example No.5</h5>
+
<h2>Projects section</h2>
+
<div class="separator-container">
+
<div class="separator line-separator">✻</div>
+
</div>
+
</div>
+
</div>
+
<div class="info">
+
<p class="text-center text-gray">more project stuff yay</p>
+
</div>
+
<div class="row scroller" style="transform: translateX(-597px);">
+
<div class="col-lg-3 col-md-6 col-sm-6">
+
<div class="project">
+
<img alt="..." src="assets/img/builder/projects/project.jpg">
+
</div>
+
</div>
+
<div class="col-lg-3 col-md-6 col-sm-6">
+
<div class="project">
+
<img alt="..." src="assets/img/builder/projects/project.jpg">
+
</div>
+
</div>
+
<div class="col-lg-3 col-md-6 col-sm-6">
+
<div class="project">
+
<img alt="..." src="assets/img/builder/projects/project.jpg">
+
</div>
+
</div>
+
<div class="col-lg-3 col-md-6 col-sm-6">
+
<div class="project">
+
<img alt="..." src="assets/img/builder/projects/project.jpg">
+
<a class="over-area color-black" href="#" target="_blank">
+
<div class="content">
+
<h4>this is</h4>
+
<p>a really cool website I think</p>
+
</div>
+
</a>
+
</div>
+
</div>
+
</div>
+
</div>
+
</div>
+
<!-- End Section "Our Projects" example 5: Single Line Photos -->
+
  
<!-- Section "Team" example 1: Title & Full Image -->
+
                if(rubik.misc.navbar_menu_visible == 1) {                   
<div class="section section-team-1" id="team1">
+
                    $('html').removeClass('nav-open');
<div class="container">
+
                    rubik.misc.navbar_menu_visible = 0;
<div class="text-area">
+
                    $('#bodyClick').remove();
<div class="title">
+
                    setTimeout(function(){
<h2>Meet the Team</h2>
+
                        $toggle.removeClass('toggled');
<div class="separator-container">
+
                    }, 550);
<div class="separator line-separator">✻</div>
+
               
</div>
+
                } else {
<p>insert text here about our team, image will go below like this one I stole :-)</p>
+
                    setTimeout(function(){
</div>
+
                        $toggle.addClass('toggled');
</div>
+
                    }, 580);
</div>
+
                   
<div class="full-image gradient-image">
+
                    div = '<div id="bodyClick"></div>';
<img alt="..." src="assets/img/team/team1.jpg">
+
                    $(div).appendTo("body").click(function() {
</div>
+
                        $('html').removeClass('nav-open');
</div>
+
                        rubik.misc.navbar_menu_visible = 0;
<!-- End Section "Team" example 1: Description & Full Image -->
+
                        $('#bodyClick').remove();
+
                        setTimeout(function(){
<!-- BEGIN FOOTER-->
+
                            $toggle.removeClass('toggled');
<footer class="footer footer-big footer-color-black" data-color="black">
+
                        }, 550);
<div class="container">
+
                    });
<div class="row">
+
                 
<div class="col-md-2 col-sm-3">
+
                    $('html').addClass('nav-open');
<div class="info animation-1 add-animation animate">
+
                    rubik.misc.navbar_menu_visible = 1;
<h5 class="title">Company</h5>
+
                   
<nav>
+
                }
<ul>
+
            });
<li>
+
            navbar_initialized = true;
<a href="#" data-scroll="true" data-id="#overview">
+
        }
Top
+
 
</a>
+
    },
</li>
+
<li>
+
<a href="#">
+
something
+
</a>
+
</li>
+
</ul>
+
</nav>
+
</div>
+
</div>
+
<div class="col-md-3 col-md-offset-1 col-sm-3">
+
<div class="info animation-2 add-animation animate">
+
<h5 class="title"> category</h5>
+
<nav>
+
<ul>
+
<li>
+
<a href="#">
+
Contact Us
+
</a>
+
</li>
+
</ul>
+
</nav>
+
</div>
+
</div>
+
<div class="col-md-3 col-sm-3">
+
<div class="info animation-3 add-animation animate">
+
<h5 class="title add-animation animate">Latest News</h5>
+
<nav>
+
<ul>
+
<li>
+
<a href="#">
+
<i class="fa fa-twitter"></i> <b>Experiment</b>
+
Curious what our project is about?  Check out this short video...
+
<hr class="hr-small">
+
</a>
+
</li>
+
<li>
+
<a href="#">
+
<i class="fa fa-twitter"></i>
+
Looking to collaborate this year?  Sign up for our <b>pen pal</b> program...
+
</a>
+
</li>
+
</ul>
+
</nav>
+
</div>
+
</div>
+
<div class="col-md-2 col-md-offset-1 col-sm-3">
+
<div class="info animation-4 add-animation animate">
+
<h5 class="title add-animation animate">Follow us on</h5>
+
<nav>
+
<ul>
+
<li>
+
<a href="#" class="btn btn-social btn-facebook btn-simple">
+
<i class="fa fa-facebook-square"></i> Facebook
+
</a>
+
</li>
+
<li>
+
<a href="#" class="btn btn-social btn-twitter btn-simple">
+
<i class="fa fa-twitter"></i> Twitter
+
</a>
+
</li>
+
</ul>
+
</nav>
+
</div>
+
</div>
+
</div>
+
<hr>
+
<div class="copyright">
+
2016 William and Mary iGEM
+
</div>
+
</div>
+
</footer>
+
  
 +
    checkResponsiveImage: function(){
 +
        responsive_background = $('.section-header > div .responsive-background');
 
          
 
          
 +
        if(responsive_background.length == 0){
 +
            $('.section-header > div > img, .section-header video').each(function(){
 +
                var $image = $(this);
 +
                var src = $image.attr("src");
 +
               
 +
                if($image.attr("responsive-src")){
 +
                    src = $image.attr("responsive-src");   
 +
                }
 +
               
 +
                div = '<div class="responsive-background" style="background-image:url(' + src + ')"/>';
 +
                $image.after(div);
 +
                $image.addClass('hidden-xs hidden-sm');
 +
            }); 
 +
        }
 +
    }, 
 +
   
 +
//JOHN MITCHELL modify distance from top at which navbar becomes opaque, lowered for new page
 +
    checkScrollForTransparentNavbar: debounce(function() {
 +
        if($(document).scrollTop() > 30 ) {
 +
                if(transparent) {
 +
                    transparent = false;
 +
                    $('nav[role="navigation"]').removeClass('navbar-transparent');
 +
                }
 +
            } else {
 +
                if( !transparent ) {
 +
                    transparent = true;
 +
                    $('nav[role="navigation"]').addClass('navbar-transparent');
 +
                }
 +
            }
 +
    }, 17),
 +
   
 +
    checkScrollForParallax: debounce(function() {
 +
        no_of_elements = 0;
 +
        $('.parallax').each(function() {
 +
            var $elem = $(this);
 +
           
 +
            if(isElementInViewport($elem)){
 +
                  var parent_top = $elem.offset().top;         
 +
                  var window_bottom = $(window).scrollTop();
 +
                  var $image = $elem.children('img');
 +
                               
 +
              oVal = ((window_bottom - parent_top) / 3);
 +
                  $image.css('transform','translate3d(0px, ' + oVal + 'px, 0px)');   
 +
            }
 +
            });
 +
   
 +
    }, 6),
 +
   
 +
    checkScrollForContentTransitions: debounce(function() {
 +
        $('.content-with-opacity').each(function() {
 +
            var $content = $(this);
 +
           
 +
            if(isElementInViewport($content)){         
 +
                  var window_top = $(window).scrollTop();
 +
              opacityVal = 1 - (window_top / 230);
 +
                 
 +
                  if(opacityVal < 0){
 +
                      opacityVal = 0;
 +
                      return;
 +
                  } else {
 +
                    $content.css('opacity',opacityVal);   
 +
                  }
 +
                     
 +
            }           
 +
        });
 +
    }, 6),
 +
   
 +
    showModal: function(button){
 +
        var id = $(button).data('target');
 +
        var $project = $(button).closest('.project');
 +
       
 +
        var scrollTop = $(window).scrollTop();
 +
        var distanceTop = $project.offset().top;
 +
 +
        var projectTop = distanceTop - scrollTop;
 +
        var projectLeft = $project.offset().left;
 +
        var projectHeight = $project.innerHeight();
 +
        var projectWidth = $project.innerWidth();
 +
 +
        modal = $('#' + id);
 +
 +
        $(modal).css({
 +
        'top'  :    projectTop,
 +
        'left' :    projectLeft,
 +
        'width' :  projectWidth,
 +
        'height' :  projectHeight,
 +
        'z-index'  : '1032'
 +
        });
 
          
 
          
         </div>
+
         $(modal).addClass('has-background');
 
          
 
          
<!-- END OF WRAPPER DIV-->
+
        setTimeout(function(){
 +
          $(modal).addClass('open');
 +
        },30);
  
         <div class="body-layer"></div>
+
         setTimeout(function(){
    </body>
+
          $('body').addClass('noscroll');
 +
          $(modal).addClass('scroll');
 +
        },1000);
 
      
 
      
 +
        $('.icon-close').click(function(){
 +
          $project_content = $(this).closest('.project-content');
 +
          $project_content.removeClass('open scroll');
 +
         
 +
          $('body').removeClass("noscroll");
 +
          //$('a').removeClass('no-opacity');
 +
            setTimeout(function(){
 +
                $project_content.removeClass('has-background');
 +
                setTimeout(function(){   
 +
                    $project_content.removeAttr('style');   
 +
                }, 450);
 +
            },500);
 +
        });
 +
    },
 
      
 
      
      
+
     initGoogleMaps: function(){
    <!--  core js files    -->
+
        var myLatlng = new google.maps.LatLng(44.433530, 26.093928);
    <script src="https://2016.igem.org/Team:William_and_Mary/jquery1-12?action=raw&amp;" type="text/javascript"></script>
+
       
    <script src="https://2016.igem.org/Team:William_and_Mary/bootstrapjs?action=raw&amp;" type="text/javascript"></script>
+
        var mapOptions = {
    <script type="text/javascript" src="https://2016.igem.org/Team:William_and_Mary/bootstrapswitch?action=raw&amp;"></script>
+
          zoom: 16,
    <script type="text/javascript" src="https://2016.igem.org/Team:William_and_Mary/jquerybxsliderjs?action=raw&amp;"></script>
+
          center: myLatlng,
 +
          scrollwheel: false, //we disable de scroll over the map, it is a really annoing when you scroll through page
 +
          disableDefaultUI: true,
 +
          styles: [{"featureType":"administrative","elementType":"labels","stylers":[{"visibility":"on"},{"gamma":"1.82"}]},{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"visibility":"on"},{"gamma":"1.96"},{"lightness":"-9"}]},{"featureType":"administrative","elementType":"labels.text.stroke","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"all","stylers":[{"visibility":"on"},{"lightness":"25"},{"gamma":"1.00"},{"saturation":"-100"}]},{"featureType":"poi.business","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"poi.park","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"geometry","stylers":[{"hue":"#ffaa00"},{"saturation":"-43"},{"visibility":"on"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"labels","stylers":[{"visibility":"simplified"},{"hue":"#ffaa00"},{"saturation":"-70"}]},{"featureType":"road.highway.controlled_access","elementType":"labels","stylers":[{"visibility":"on"}]},{"featureType":"road.arterial","elementType":"all","stylers":[{"visibility":"on"},{"saturation":"-100"},{"lightness":"30"}]},{"featureType":"road.local","elementType":"all","stylers":[{"saturation":"-100"},{"lightness":"40"},{"visibility":"off"}]},{"featureType":"transit.station.airport","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"gamma":"0.80"}]},{"featureType":"water","elementType":"all","stylers":[{"visibility":"off"}]}]
 +
        }
 +
        var map = new google.maps.Map(document.getElementById("contactUsMap"), mapOptions);
 +
       
 +
        var marker = new google.maps.Marker({
 +
            position: myLatlng,
 +
            title:"Hello World!"
 +
        });
 +
       
 +
        // To add the marker to the map, call setMap();
 +
        marker.setMap(map);
 +
    }
  
    <!--  file for adding vertical points where we activate the elements animation  -->
+
}
    <script type="text/javascript" src="https://2016.igem.org/Team:William_and_Mary/waypoints?action=raw&amp;"></script>
+
  
    <!--  js library for devices recognition -->
+
// Returns a function, that, as long as it continues to be invoked, will not
    <script type="text/javascript" src="https://2016.igem.org/Team:William_and_Mary/modernizr?action=raw&amp;"></script>
+
// be triggered. The function will be called after it stops being called for
 +
// N milliseconds. If `immediate` is passed, trigger the function on the
 +
// leading edge, instead of the trailing.
  
    <!--  script for google maps  -->
+
function debounce(func, wait, immediate) {
    <!--script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script-->
+
var timeout;
 +
return function() {
 +
var context = this, args = arguments;
 +
clearTimeout(timeout);
 +
timeout = setTimeout(function() {
 +
timeout = null;
 +
if (!immediate) func.apply(context, args);
 +
}, wait);
 +
if (immediate && !timeout) func.apply(context, args);
 +
};
 +
};
  
     <!--  file where we handle all the script from the Rubik page   -->
+
 
<script type="text/javascript" src="https://2016.igem.org/Team:William_and_Mary/rubikjs?action=raw&ctype=text/javascript"></script>
+
function isElementInViewport(elem) {
   
+
     var $elem = $(elem);
</html>
+
 
 +
    // Get the scroll position of the page.
 +
    var scrollElem = ((navigator.userAgent.toLowerCase().indexOf('webkit') != -1) ? 'body' : 'html');
 +
    var viewportTop = $(scrollElem).scrollTop();
 +
    var viewportBottom = viewportTop + $(window).height();
 +
 
 +
    // Get the position of the element on the page.
 +
    var elemTop = Math.round( $elem.offset().top );
 +
    var elemBottom = elemTop + $elem.height();
 +
 
 +
    return ((elemTop < viewportBottom) && (elemBottom > viewportTop));
 +
}
 +
 
 +
 
 +
var BrowserDetect = {
 +
    init: function () {
 +
        this.browser = this.searchString(this.dataBrowser) || "Other";
 +
        this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "Unknown";
 +
    },
 +
    searchString: function (data) {
 +
        for (var i = 0; i < data.length; i++) {
 +
            var dataString = data[i].string;
 +
            this.versionSearchString = data[i].subString;
 +
 
 +
            if (dataString.indexOf(data[i].subString) !== -1) {
 +
                return data[i].identity;
 +
            }
 +
        }
 +
    },
 +
    searchVersion: function (dataString) {
 +
        var index = dataString.indexOf(this.versionSearchString);
 +
        if (index === -1) {
 +
            return;
 +
        }
 +
 
 +
        var rv = dataString.indexOf("rv:");
 +
        if (this.versionSearchString === "Trident" && rv !== -1) {
 +
            return parseFloat(dataString.substring(rv + 3));
 +
        } else {
 +
            return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
 +
        }
 +
    },
 +
 
 +
    dataBrowser: [
 +
        {string: navigator.userAgent, subString: "Chrome", identity: "Chrome"},
 +
        {string: navigator.userAgent, subString: "MSIE", identity: "Explorer"},
 +
        {string: navigator.userAgent, subString: "Trident", identity: "Explorer"},
 +
        {string: navigator.userAgent, subString: "Firefox", identity: "Firefox"},
 +
        {string: navigator.userAgent, subString: "Safari", identity: "Safari"},
 +
        {string: navigator.userAgent, subString: "Opera", identity: "Opera"}
 +
    ]
 +
 
 +
};
 +
 
 +
var better_browser = '<div class="container"><div class="better-browser row"><div class="col-md-2"></div><div class="col-md-8"><h3>We are sorry but it looks like your Browser doesn\'t support our website Features. In order to get the full experience please download a new version of your favourite browser.</h3></div><div class="col-md-2"></div><br><div class="col-md-4"><a href="https://www.mozilla.org/ro/firefox/new/" class="btn btn-warning">Mozilla</a><br></div><div class="col-md-4"><a href="https://www.google.com/chrome/browser/desktop/index.html" class="btn ">Chrome</a><br></div><div class="col-md-4"><a href="http://windows.microsoft.com/en-us/internet-explorer/ie-11-worldwide-languages" class="btn">Internet Explorer</a><br></div><br><br><h4>Thank you!</h4></div></div>';

Revision as of 01:23, 5 October 2016

var searchVisible = 0; var transparent = true;

var transparentDemo = true; var fixedTop = false;

var navbar_initialized = false;

var big_image; var scroll; var project_content; var $project; scroll = ( 2500 - $(window).width() ) / $(window).width();

var $ScrollTop; var $ScrollBot;

var pixels;

var modal; var $project_content;

var test = true;

var timerStart = Date.now(); var delay;

var no_of_elements = 0; var window_height; var window_width;

var content_opacity = 0; var content_transition = 0; var no_touch_screen = false;

var burger_menu;


$(document).ready(function(){

   BrowserDetect.init();
   
   if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version <= 9){
       $('body').html(better_browser);   
   }
   window_width = $(window).width();
   window_height = $(window).height();
   burger_menu = $('nav[role="navigation"]').hasClass('navbar-burger') ? true : false;
   
   if (!Modernizr.touch){
       $('body').addClass('no-touch');
       no_touch_screen = true;
   }
   
   rubik.initAnimationsCheck();
   
   // Init navigation toggle for small screens   
   if(window_width < 992 || burger_menu){
       rubik.initRightMenu();   
   }
   if(window_width < 992){
       $('.over-area').each(function(){
           var click = $(this).attr("onClick");
           if(click == ){
               src = "rubik.showModal(this)";
               $(this).attr("onClick", src);
           }
       });
       
       rubik.checkResponsiveImage();
   } 
   
   setTimeout(function(){
        $('.loading').css('opacity','0');
        setTimeout(function(){
            $('.loading').addClass('hide');
        }, 500);
    }, 3000);
       
   
   if($('#contactUsMap').length != 0){
       rubik.initGoogleMaps();   
   }
   
   if($('.content-with-opacity').length != 0){
       content_opacity = 1;
   }

});


$(window).load(function(){

   //after the content is loaded we reinitialize all the waypoints for the animations
   rubik.initAnimationsCheck();
   

});

//activate collapse right menu when the windows is resized $(window).resize(function(){

   if($(window).width() < 992){
       rubik.initRightMenu();  
       rubik.checkResponsiveImage(); 
   }
   if($(window).width() > 992 && !burger_menu){
       $('nav[role="navigation"]').removeClass('navbar-burger');
       rubik.misc.navbar_menu_visible = 1;
       navbar_initialized = false;
   }

});

$(window).on('scroll',function(){

  rubik.checkScrollForTransparentNavbar();    
  
  if(window_width > 992){
       rubik.checkScrollForParallax();
  }
  
  if(content_opacity == 1){
      rubik.checkScrollForContentTransitions();
  }             

});

$('a[data-scroll="true"]').click(function(e){

   var scroll_target = $(this).data('id');
   var scroll_trigger = $(this).data('scroll');
   
   if(scroll_trigger == true && scroll_target !== undefined){
       e.preventDefault();
       
       $('html, body').animate({
            scrollTop: $(scroll_target).offset().top - 50
       }, 1000);
   }
               

});

$('.section-we-made-2 .scroller').mousemove(

   function( event ){
     if (!Modernizr.touch) {
       if(event.clientX < 200) { 
           $(this).css("transform","translateX(0)");
       }
       if(event.clientX > 200 && event.clientX < $(window).width()-200 && event.clientX % 2 == 0 ) {
           pixels = -event.clientX * scroll;
           
           $(this).css("transform","translateX(" + pixels + "px)");
       }
       if(event.clientX > $(window).width()-200) { 
           pixels = -(2500 - $(window).width());
           $(this).css("transform","translateX(" + pixels + "px)");
       }
       $('.projects').css('overflow','hidden');
     }
   }

);


rubik = {

   misc:{
       navbar_menu_visible: 0
   },
   initAnimationsCheck: function(){
       $('[class*="add-animation"]').each(function(){
          offset_diff = 30;
          if($(this).hasClass('title')){
              offset_diff = 110;
          }
          
          var waypoints = $(this).waypoint(function(direction) {
               if(direction == 'down'){
                       $(this.element).addClass('animate');    
                  } else {
                      $(this.element).removeClass('animate');
                  }
               }, {
                 offset: window_height - offset_diff
          });
       });
 
   },
   initRightMenu: function(){  
        if(!navbar_initialized){
           $nav = $('nav[role="navigation"]');
           $nav.addClass('navbar-burger');
            
           $navbar = $nav.find('.navbar-collapse').first().clone(true);
             
           ul_content = ;
            
           $navbar.children('ul').each(function(){
               content_buff = $(this).html();
               ul_content = ul_content + content_buff;   
           });
            
ul_content = '';
           $navbar.html(ul_content);
            
           $('body').append($navbar);
                           
           background_image = $navbar.data('nav-image');
           if(background_image != undefined){
               $navbar.css('background',"url('" + background_image + "')")
                      .removeAttr('data-nav-image')
                      .css('background-size',"cover")
                      .addClass('has-image');                
           }
            
           $toggle = $('.navbar-toggle');
            
           $navbar.find('a').removeClass('btn btn-round btn-default');
           $navbar.find('button').removeClass('btn-round btn-fill btn-info btn-primary btn-success btn-danger btn-warning btn-neutral');
           $navbar.find('button').addClass('btn-simple btn-block');
           $link = $navbar.find('a');
           
           $link.click(function(e){
               var scroll_target = $(this).data('id');
               var scroll_trigger = $(this).data('scroll');
               
               if(scroll_trigger == true && scroll_target !== undefined){
                   e.preventDefault();
                   $('html, body').animate({
                        scrollTop: $(scroll_target).offset().top - 50
                   }, 1000);
               }
               
            });


           $toggle.click(function (){    
               if(rubik.misc.navbar_menu_visible == 1) {                    
                   $('html').removeClass('nav-open'); 
                   rubik.misc.navbar_menu_visible = 0;
                   $('#bodyClick').remove();
                    setTimeout(function(){
                       $toggle.removeClass('toggled');
                    }, 550);
               
               } else {
                   setTimeout(function(){
                       $toggle.addClass('toggled');
                   }, 580);
                   
div = '
';
                   $(div).appendTo("body").click(function() {
                       $('html').removeClass('nav-open');
                       rubik.misc.navbar_menu_visible = 0;
                       $('#bodyClick').remove();
                        setTimeout(function(){
                           $toggle.removeClass('toggled');
                        }, 550);
                   });
                  
                   $('html').addClass('nav-open');
                   rubik.misc.navbar_menu_visible = 1;
                   
               }
           });
           navbar_initialized = true;
       }
  
   },
   checkResponsiveImage: function(){
       responsive_background = $('.section-header > div .responsive-background');
       
       if(responsive_background.length == 0){
           $('.section-header > div > img, .section-header video').each(function(){
               var $image = $(this);
               var src = $image.attr("src");
               
               if($image.attr("responsive-src")){
                   src = $image.attr("responsive-src");    
               }
               
               div = '<div class="responsive-background" style="background-image:url(' + src + ')"/>';
               $image.after(div);
               $image.addClass('hidden-xs hidden-sm'); 
           });   
       }
   },  
   

//JOHN MITCHELL modify distance from top at which navbar becomes opaque, lowered for new page

   checkScrollForTransparentNavbar: debounce(function() {	
       	if($(document).scrollTop() > 30 ) {
               if(transparent) {
                   transparent = false;
                   $('nav[role="navigation"]').removeClass('navbar-transparent');
               }
           } else {
               if( !transparent ) {
                   transparent = true;
                   $('nav[role="navigation"]').addClass('navbar-transparent');
               }
           }
   }, 17),
   
   checkScrollForParallax: debounce(function() {	
       	no_of_elements = 0;
       	$('.parallax').each(function() {
       	    var $elem = $(this);
       	    
       	    if(isElementInViewport($elem)){
                 var parent_top = $elem.offset().top;          
                 var window_bottom = $(window).scrollTop();
                 var $image = $elem.children('img');
                             	  
           	  oVal = ((window_bottom - parent_top) / 3);
                 $image.css('transform','translate3d(0px, ' + oVal + 'px, 0px)');    
       	    }
           });
   		
   }, 6),
   
   checkScrollForContentTransitions: debounce(function() {
        $('.content-with-opacity').each(function() {
            var $content = $(this);
            
            if(isElementInViewport($content)){          
                 var window_top = $(window).scrollTop();
           	  opacityVal = 1 - (window_top / 230);
                 
                 if(opacityVal < 0){
                     opacityVal = 0;
                     return;
                 } else {
                   $content.css('opacity',opacityVal);    
                 }
                     
       	    }            
        });
   }, 6),
   
   showModal: function(button){
       var id = $(button).data('target');
       var $project = $(button).closest('.project');
       
       var scrollTop = $(window).scrollTop();
       var distanceTop = $project.offset().top;
       var projectTop = distanceTop - scrollTop; 
       var projectLeft = $project.offset().left;
       var projectHeight = $project.innerHeight();
       var projectWidth = $project.innerWidth();
       modal = $('#' + id);
       $(modal).css({
        'top'  :    projectTop,
        'left' :    projectLeft, 
        'width' :   projectWidth,
        'height' :  projectHeight,
        'z-index'  : '1032'
       });
       
       $(modal).addClass('has-background');
       
       setTimeout(function(){
          $(modal).addClass('open');
       },30);
       setTimeout(function(){
          $('body').addClass('noscroll');
          $(modal).addClass('scroll');
       },1000);
   
       $('.icon-close').click(function(){
         $project_content = $(this).closest('.project-content');
         $project_content.removeClass('open scroll');
         
         $('body').removeClass("noscroll");
         //$('a').removeClass('no-opacity');
           setTimeout(function(){
               $project_content.removeClass('has-background');
               setTimeout(function(){    
                   $project_content.removeAttr('style');     
               }, 450); 
           },500);
       });
   },
   
   initGoogleMaps: function(){
       var myLatlng = new google.maps.LatLng(44.433530, 26.093928);
       
       var mapOptions = {
         zoom: 16,
         center: myLatlng,
         scrollwheel: false, //we disable de scroll over the map, it is a really annoing when you scroll through page
         disableDefaultUI: true,
         styles: [{"featureType":"administrative","elementType":"labels","stylers":[{"visibility":"on"},{"gamma":"1.82"}]},{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"visibility":"on"},{"gamma":"1.96"},{"lightness":"-9"}]},{"featureType":"administrative","elementType":"labels.text.stroke","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"all","stylers":[{"visibility":"on"},{"lightness":"25"},{"gamma":"1.00"},{"saturation":"-100"}]},{"featureType":"poi.business","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"poi.park","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"geometry","stylers":[{"hue":"#ffaa00"},{"saturation":"-43"},{"visibility":"on"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"labels","stylers":[{"visibility":"simplified"},{"hue":"#ffaa00"},{"saturation":"-70"}]},{"featureType":"road.highway.controlled_access","elementType":"labels","stylers":[{"visibility":"on"}]},{"featureType":"road.arterial","elementType":"all","stylers":[{"visibility":"on"},{"saturation":"-100"},{"lightness":"30"}]},{"featureType":"road.local","elementType":"all","stylers":[{"saturation":"-100"},{"lightness":"40"},{"visibility":"off"}]},{"featureType":"transit.station.airport","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"gamma":"0.80"}]},{"featureType":"water","elementType":"all","stylers":[{"visibility":"off"}]}]
       }
       var map = new google.maps.Map(document.getElementById("contactUsMap"), mapOptions);
       
       var marker = new google.maps.Marker({
           position: myLatlng,
           title:"Hello World!"
       });
       
       // To add the marker to the map, call setMap();
       marker.setMap(map);
   }

}

// Returns a function, that, as long as it continues to be invoked, will not // be triggered. The function will be called after it stops being called for // N milliseconds. If `immediate` is passed, trigger the function on the // leading edge, instead of the trailing.

function debounce(func, wait, immediate) { var timeout; return function() { var context = this, args = arguments; clearTimeout(timeout); timeout = setTimeout(function() { timeout = null; if (!immediate) func.apply(context, args); }, wait); if (immediate && !timeout) func.apply(context, args); }; };


function isElementInViewport(elem) {

   var $elem = $(elem);
   // Get the scroll position of the page.
   var scrollElem = ((navigator.userAgent.toLowerCase().indexOf('webkit') != -1) ? 'body' : 'html');
   var viewportTop = $(scrollElem).scrollTop();
   var viewportBottom = viewportTop + $(window).height();
   // Get the position of the element on the page.
   var elemTop = Math.round( $elem.offset().top );
   var elemBottom = elemTop + $elem.height();
   return ((elemTop < viewportBottom) && (elemBottom > viewportTop));

}


var BrowserDetect = {

   init: function () {
       this.browser = this.searchString(this.dataBrowser) || "Other";
       this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "Unknown";
   },
   searchString: function (data) {
       for (var i = 0; i < data.length; i++) {
           var dataString = data[i].string;
           this.versionSearchString = data[i].subString;
           if (dataString.indexOf(data[i].subString) !== -1) {
               return data[i].identity;
           }
       }
   },
   searchVersion: function (dataString) {
       var index = dataString.indexOf(this.versionSearchString);
       if (index === -1) {
           return;
       }
       var rv = dataString.indexOf("rv:");
       if (this.versionSearchString === "Trident" && rv !== -1) {
           return parseFloat(dataString.substring(rv + 3));
       } else {
           return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
       }
   },
   dataBrowser: [
       {string: navigator.userAgent, subString: "Chrome", identity: "Chrome"},
       {string: navigator.userAgent, subString: "MSIE", identity: "Explorer"},
       {string: navigator.userAgent, subString: "Trident", identity: "Explorer"},
       {string: navigator.userAgent, subString: "Firefox", identity: "Firefox"},
       {string: navigator.userAgent, subString: "Safari", identity: "Safari"},
       {string: navigator.userAgent, subString: "Opera", identity: "Opera"}
   ]

};

var better_browser = '

We are sorry but it looks like your Browser doesn\'t support our website Features. In order to get the full experience please download a new version of your favourite browser.


<a href="https://www.mozilla.org/ro/firefox/new/" class="btn btn-warning">Mozilla</a>
<a href="http://windows.microsoft.com/en-us/internet-explorer/ie-11-worldwide-languages" class="btn">Internet Explorer</a>


Thank you!

';