|
|
Line 318: |
Line 318: |
| | | |
| | | |
- |
| |
- | <script>
| |
- | $(".main-menue").css("background-color", "transparent");
| |
- |
| |
- | $(window).scroll(function() {
| |
- |
| |
- | if ($(this).scrollTop() >= 350) {
| |
- | $(".main-menue").css("background-color","rgb(255, 255, 255)");
| |
- | }
| |
- |
| |
- | if ($(this).scrollTop() < 350) { // this refers to window
| |
- | $(".main-menue").css("background-color","transparent");
| |
- | }
| |
- |
| |
- | });
| |
- |
| |
- |
| |
- | // igemScript.js
| |
- |
| |
- | // my scroll to
| |
- | $("#main-button").click(function() {
| |
- | $('html, body').animate({
| |
- | scrollTop: $("#main-featurette-row").offset().top
| |
- | }, 800);
| |
- | });
| |
- |
| |
- |
| |
- | $(document).ready(function(){
| |
- | // cache the window object
| |
- | $window = $(window);
| |
- | var url = window.location.href;
| |
- |
| |
- | // passes on every "a" tag
| |
- | $(".main-menue-ul a").each(function() {
| |
- | // checks if its the same on the address bar
| |
- | if(url == (this.href)) {
| |
- | $(this).children("li").addClass("active");
| |
- | }
| |
- |
| |
- |
| |
- | $('section[data-type="background"]').each(function(){
| |
- | // declare the variable to affect the defined data-type
| |
- | var $scroll = $(this);
| |
- |
| |
- | $(window).scroll(function() {
| |
- | // HTML5 proves useful for helping with creating JS functions!
| |
- | // also, negative value because we're scrolling upwards
| |
- | var yPos = -($window.scrollTop() / $scroll.data('speed'));
| |
- |
| |
- | // background position
| |
- | var coords = '80% '+ yPos + 'px';
| |
- |
| |
- | // move the background
| |
- | $scroll.css({ backgroundPosition: coords });
| |
- | }); // end window scroll
| |
- | }); // end section function
| |
- | }); // close out script
| |
- |
| |
- |
| |
- |
| |
- | /*global define:false require:false */
| |
- | (function (name, context, definition) {
| |
- | if (typeof module != 'undefined' && module.exports) module.exports = definition();
| |
- | else if (typeof define == 'function' && define.amd) define(definition);
| |
- | else context[name] = definition();
| |
- | })('jquery-scrollto', this, function(){
| |
- | // Prepare
| |
- | var jQuery, $, ScrollTo;
| |
- | jQuery = $ = window.jQuery || require('jquery');
| |
- |
| |
- | // Fix scrolling animations on html/body on safari
| |
- | $.propHooks.scrollTop = $.propHooks.scrollLeft = {
| |
- | get: function(elem,prop) {
| |
- | var result = null;
| |
- | if ( elem.tagName === 'HTML' || elem.tagName === 'BODY' ) {
| |
- | if ( prop === 'scrollLeft' ) {
| |
- | result = window.scrollX;
| |
- | } else if ( prop === 'scrollTop' ) {
| |
- | result = window.scrollY;
| |
- | }
| |
- | }
| |
- | if ( result == null ) {
| |
- | result = elem[prop];
| |
- | }
| |
- | return result;
| |
- | }
| |
- | };
| |
- | $.Tween.propHooks.scrollTop = $.Tween.propHooks.scrollLeft = {
| |
- | get: function(tween) {
| |
- | return $.propHooks.scrollTop.get(tween.elem, tween.prop);
| |
- | },
| |
- | set: function(tween) {
| |
- | // Our safari fix
| |
- | if ( tween.elem.tagName === 'HTML' || tween.elem.tagName === 'BODY' ) {
| |
- | // Defaults
| |
- | tween.options.bodyScrollLeft = (tween.options.bodyScrollLeft || window.scrollX);
| |
- | tween.options.bodyScrollTop = (tween.options.bodyScrollTop || window.scrollY);
| |
- |
| |
- | // Apply
| |
- | if ( tween.prop === 'scrollLeft' ) {
| |
- | tween.options.bodyScrollLeft = Math.round(tween.now);
| |
- | }
| |
- | else if ( tween.prop === 'scrollTop' ) {
| |
- | tween.options.bodyScrollTop = Math.round(tween.now);
| |
- | }
| |
- |
| |
- | // Apply
| |
- | window.scrollTo(tween.options.bodyScrollLeft, tween.options.bodyScrollTop);
| |
- | }
| |
- | // jQuery's IE8 Fix
| |
- | else if ( tween.elem.nodeType && tween.elem.parentNode ) {
| |
- | tween.elem[ tween.prop ] = tween.now;
| |
- | }
| |
- | }
| |
- | };
| |
- |
| |
- | // jQuery ScrollTo
| |
- | ScrollTo = {
| |
- | // Configuration
| |
- | config: {
| |
- | duration: 400,
| |
- | easing: 'swing',
| |
- | callback: undefined,
| |
- | durationMode: 'each',
| |
- | offsetTop: 0,
| |
- | offsetLeft: 0
| |
- | },
| |
- |
| |
- | // Set Configuration
| |
- | configure: function(options){
| |
- | // Apply Options to Config
| |
- | $.extend(ScrollTo.config, options||{});
| |
- |
| |
- | // Chain
| |
- | return this;
| |
- | },
| |
- |
| |
- | // Perform the Scroll Animation for the Collections
| |
- | // We use $inline here, so we can determine the actual offset start for each overflow:scroll item
| |
- | // Each collection is for each overflow:scroll item
| |
- | scroll: function(collections, config){
| |
- | // Prepare
| |
- | var collection, $container, container, $target, $inline, position, containerTagName,
| |
- | containerScrollTop, containerScrollLeft,
| |
- | containerScrollTopEnd, containerScrollLeftEnd,
| |
- | startOffsetTop, targetOffsetTop, targetOffsetTopAdjusted,
| |
- | startOffsetLeft, targetOffsetLeft, targetOffsetLeftAdjusted,
| |
- | scrollOptions,
| |
- | callback;
| |
- |
| |
- | // Determine the Scroll
| |
- | collection = collections.pop();
| |
- | $container = collection.$container;
| |
- | $target = collection.$target;
| |
- | containerTagName = $container.prop('tagName');
| |
- |
| |
- | // Prepare the Inline Element of the Container
| |
- | $inline = $('<span/>').css({
| |
- | 'position': 'absolute',
| |
- | 'top': '0px',
| |
- | 'left': '0px'
| |
- | });
| |
- | position = $container.css('position');
| |
- |
| |
- | // Insert the Inline Element of the Container
| |
- | $container.css({position:'relative'});
| |
- | $inline.appendTo($container);
| |
- |
| |
- | // Determine the top offset
| |
- | startOffsetTop = $inline.offset().top;
| |
- | targetOffsetTop = $target.offset().top;
| |
- | targetOffsetTopAdjusted = targetOffsetTop - startOffsetTop - parseInt(config.offsetTop,10);
| |
- |
| |
- | // Determine the left offset
| |
- | startOffsetLeft = $inline.offset().left;
| |
- | targetOffsetLeft = $target.offset().left;
| |
- | targetOffsetLeftAdjusted = targetOffsetLeft - startOffsetLeft - parseInt(config.offsetLeft,10);
| |
- |
| |
- | // Determine current scroll positions
| |
- | containerScrollTop = $container.prop('scrollTop');
| |
- | containerScrollLeft = $container.prop('scrollLeft');
| |
- |
| |
- | // Reset the Inline Element of the Container
| |
- | $inline.remove();
| |
- | $container.css({position:position});
| |
- |
| |
- | // Prepare the scroll options
| |
- | scrollOptions = {};
| |
- |
| |
- | // Prepare the callback
| |
- | callback = function(event){
| |
- | // Check
| |
- | if ( collections.length === 0 ) {
| |
- | // Callback
| |
- | if ( typeof config.callback === 'function' ) {
| |
- | config.callback();
| |
- | }
| |
- | }
| |
- | else {
| |
- | // Recurse
| |
- | ScrollTo.scroll(collections,config);
| |
- | }
| |
- | // Return true
| |
- | return true;
| |
- | };
| |
- |
| |
- | // Handle if we only want to scroll if we are outside the viewport
| |
- | if ( config.onlyIfOutside ) {
| |
- | // Determine current scroll positions
| |
- | containerScrollTopEnd = containerScrollTop + $container.height();
| |
- | containerScrollLeftEnd = containerScrollLeft + $container.width();
| |
- |
| |
- | // Check if we are in the range of the visible area of the container
| |
- | if ( containerScrollTop < targetOffsetTopAdjusted && targetOffsetTopAdjusted < containerScrollTopEnd ) {
| |
- | targetOffsetTopAdjusted = containerScrollTop;
| |
- | }
| |
- | if ( containerScrollLeft < targetOffsetLeftAdjusted && targetOffsetLeftAdjusted < containerScrollLeftEnd ) {
| |
- | targetOffsetLeftAdjusted = containerScrollLeft;
| |
- | }
| |
- | }
| |
- |
| |
- | // Determine the scroll options
| |
- | if ( targetOffsetTopAdjusted !== containerScrollTop ) {
| |
- | scrollOptions.scrollTop = targetOffsetTopAdjusted;
| |
- | }
| |
- | if ( targetOffsetLeftAdjusted !== containerScrollLeft ) {
| |
- | scrollOptions.scrollLeft = targetOffsetLeftAdjusted;
| |
- | }
| |
- |
| |
- | // Check to see if the scroll is necessary
| |
- | if ( $container.prop('scrollHeight') === $container.width() ) {
| |
- | delete scrollOptions.scrollTop;
| |
- | }
| |
- | if ( $container.prop('scrollWidth') === $container.width() ) {
| |
- | delete scrollOptions.scrollLeft;
| |
- | }
| |
- |
| |
- | // Perform the scroll
| |
- | if ( scrollOptions.scrollTop != null || scrollOptions.scrollLeft != null ) {
| |
- | $container.animate(scrollOptions, {
| |
- | duration: config.duration,
| |
- | easing: config.easing,
| |
- | complete: callback
| |
- | });
| |
- | }
| |
- | else {
| |
- | callback();
| |
- | }
| |
- |
| |
- | // Return true
| |
- | return true;
| |
- | },
| |
- |
| |
- | // ScrollTo the Element using the Options
| |
- | fn: function(options){
| |
- | // Prepare
| |
- | var collections, config, $container, container;
| |
- | collections = [];
| |
- |
| |
- | // Prepare
| |
- | var $target = $(this);
| |
- | if ( $target.length === 0 ) {
| |
- | // Chain
| |
- | return this;
| |
- | }
| |
- |
| |
- | // Handle Options
| |
- | config = $.extend({},ScrollTo.config,options);
| |
- |
| |
- | // Fetch
| |
- | $container = $target.parent();
| |
- | container = $container.get(0);
| |
- |
| |
- | // Cycle through the containers
| |
- | while ( ($container.length === 1) && (container !== document.body) && (container !== document) ) {
| |
- | // Check Container for scroll differences
| |
- | var containerScrollTop, containerScrollLeft;
| |
- | containerScrollTop = $container.css('overflow-y') !== 'visible' && container.scrollHeight !== container.clientHeight;
| |
- | containerScrollLeft = $container.css('overflow-x') !== 'visible' && container.scrollWidth !== container.clientWidth;
| |
- | if ( containerScrollTop || containerScrollLeft ) {
| |
- | // Push the Collection
| |
- | collections.push({
| |
- | '$container': $container,
| |
- | '$target': $target
| |
- | });
| |
- | // Update the Target
| |
- | $target = $container;
| |
- | }
| |
- | // Update the Container
| |
- | $container = $container.parent();
| |
- | container = $container.get(0);
| |
- | }
| |
- |
| |
- | // Add the final collection
| |
- | collections.push({
| |
- | '$container': $('html'),
| |
- | // document.body doesn't work in firefox, html works for all
| |
- | // internet explorer starts at the beggining
| |
- | '$target': $target
| |
- | });
| |
- |
| |
- | // Adjust the Config
| |
- | if ( config.durationMode === 'all' ) {
| |
- | config.duration /= collections.length;
| |
- | }
| |
- |
| |
- | // Handle
| |
- | ScrollTo.scroll(collections,config);
| |
- |
| |
- | // Chain
| |
- | return this;
| |
- | }
| |
- | };
| |
- |
| |
- | // Apply our extensions to jQuery
| |
- | $.ScrollTo = $.ScrollTo || ScrollTo;
| |
- | $.fn.ScrollTo = $.fn.ScrollTo || ScrollTo.fn;
| |
- |
| |
- | // Export
| |
- | return ScrollTo;
| |
- | });
| |
- |
| |
- |
| |
- |
| |
- | </script>
| |
| <script type="text/javascript" src="https://2014.igem.org/Template:Team:Berlin/script.min?action=raw&ctype=text/javascript"></script> | | <script type="text/javascript" src="https://2014.igem.org/Template:Team:Berlin/script.min?action=raw&ctype=text/javascript"></script> |
| </body> | | </body> |
| | | |
| </html> | | </html> |