Difference between revisions of "Team:Cornell/sandbox"
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | |||
<!DOCTYPE html> | <!DOCTYPE html> | ||
<html lang="en"> | <html lang="en"> | ||
+ | <!-- Make sure the <html> tag is set to the .full CSS class. Change the background image in the full.css file. --> | ||
<head> | <head> | ||
− | + | <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> | |
− | + | <script type="text/javascript"> | |
− | + | (function($) { | |
− | + | $.fn.turniquet = function(options) { | |
− | + | // This is the easiest way to have default options. | |
− | + | var settings = $.extend({ | |
− | + | // These are the defaults. | |
− | + | zindex : 10000, | |
− | + | direction: 'up', | |
− | + | duration: 200, | |
− | + | easing: 'swing', | |
− | + | animateOnCLick: true, | |
− | + | triggerUp: null, | |
− | + | triggerDown: null, | |
− | + | complete: null, | |
− | + | before: null, | |
− | + | after: null | |
− | + | }, options); | |
− | + | ||
− | + | var windowWidth = this.parent().width(), | |
− | + | windowHeight = this.parent().height(), | |
− | + | zIndexI = settings.zindex, | |
− | + | children = this.children(), | |
+ | nbChild = children.length, | ||
+ | childWidth = $(children[0]).width(), | ||
+ | childHeight = $(children[0]).height(), | ||
+ | positions = [], | ||
+ | animationCounter = 0; | ||
+ | |||
+ | var animate = function(direction){ | ||
+ | if(typeof direction != 'string'){ | ||
+ | direction = settings.direction; | ||
+ | } | ||
+ | |||
+ | if(animationCounter == 0){ | ||
+ | var $e = $(this); | ||
+ | |||
+ | // for each child of main collection | ||
+ | children.each(function(index, element){ | ||
+ | var $c = $(element), | ||
+ | dataIndex = parseInt($c.attr('data-index')) | ||
+ | newIndex = 0, | ||
+ | down = null, | ||
+ | animTop = '', | ||
+ | animLeft = ''; | ||
+ | |||
+ | if(direction == 'up'){// up | ||
+ | newIndex = nbChild-1; | ||
+ | down = true; | ||
+ | if(dataIndex > 0){ | ||
+ | newIndex = dataIndex-1; | ||
+ | down = false; | ||
+ | } | ||
+ | }else{ // down | ||
+ | newIndex = 0; | ||
+ | down = false | ||
+ | if(dataIndex < (nbChild-1)){ | ||
+ | newIndex = dataIndex+1; | ||
+ | down = true; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Change data index | ||
+ | $c.attr('data-index', newIndex); | ||
+ | |||
+ | // Trigger before method | ||
+ | if(typeof settings.before == 'function'){ | ||
+ | settings.before(index, element); | ||
+ | } | ||
+ | |||
+ | if(!down){ | ||
+ | animTop = '-='+($c.position().top - positions[newIndex].top); | ||
+ | animLeft = '-='+($c.position().left - positions[newIndex].left); | ||
+ | }else{ | ||
+ | if(direction == 'up'){ | ||
+ | animTop = '+='+($c.position().top + positions[newIndex].top); | ||
+ | animLeft = '+='+($c.position().left + positions[newIndex].left); | ||
+ | }else{ | ||
+ | animTop = '+='+(positions[newIndex].top - $c.position().top); | ||
+ | animLeft = '+='+(positions[newIndex].left - $c.position().left); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | animationCounter++; | ||
+ | |||
+ | // change z-index | ||
+ | if(direction == 'up'){ | ||
+ | $c.css('z-index', positions[newIndex].zindex); | ||
+ | }else{// delay z-index | ||
+ | var ozIndex = { | ||
+ | zindex : positions[newIndex].zindex | ||
+ | }; | ||
+ | setTimeout(function(){ | ||
+ | $c.css('z-index', ozIndex.zindex); | ||
+ | }, settings.duration); | ||
+ | } | ||
+ | |||
+ | // Animate slides | ||
+ | $c.animate({ | ||
+ | left: animLeft, | ||
+ | top: animTop | ||
+ | }, settings.duration, settings.easing, function(){ | ||
+ | if(animationCounter > 0){ | ||
+ | animationCounter --; | ||
+ | } | ||
+ | }); | ||
+ | // Trigger before method | ||
+ | if(typeof settings.before == 'function'){ | ||
+ | setTimeout(function(){ | ||
+ | settings.after(index, element); | ||
+ | }, settings.duration); | ||
+ | } | ||
+ | |||
+ | }); | ||
+ | // Trigger complete method | ||
+ | if(typeof settings.complete == 'function'){ | ||
+ | setTimeout(settings.complete, settings.duration); | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | // Initilize First Position | ||
+ | children.each(function(index, element){ | ||
+ | var $e = $(element); | ||
+ | zIndexI--; | ||
+ | |||
+ | // Calculate position of each slide | ||
+ | var left = (((windowWidth-(childWidth))/(nbChild-1))*index); | ||
+ | var top = (((windowHeight-(childHeight))/(nbChild-1))*index); | ||
+ | |||
+ | positions[index] = { | ||
+ | 'top':top, | ||
+ | 'left':left, | ||
+ | 'zindex':zIndexI | ||
+ | }; | ||
+ | |||
+ | // Position slides | ||
+ | $e.css('top', top) | ||
+ | .css('left', left) | ||
+ | .css('z-index', zIndexI) | ||
+ | .attr('data-index', index); | ||
+ | }); | ||
+ | |||
+ | //Manage Click | ||
+ | if(settings.animateOnCLick){ | ||
+ | children.click(animate); | ||
+ | } | ||
+ | |||
+ | if(settings.triggerUp != null){ | ||
+ | var $triggerUp = $(settings.triggerUp); | ||
+ | if($triggerUp.length > 0){ | ||
+ | $triggerUp.click(function(){ | ||
+ | animate('up'); | ||
+ | }); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if(settings.triggerDown != null){ | ||
+ | var $triggerDown = $(settings.triggerDown); | ||
+ | if($triggerDown.length > 0){ | ||
+ | $triggerDown.click(function(){ | ||
+ | animate('down'); | ||
+ | }); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return this; | ||
+ | }; | ||
+ | |||
+ | }(jQuery)); | ||
+ | |||
+ | $('.turniquet').turniquet(); | ||
+ | </script> | ||
+ | <style type="text/css"> | ||
+ | .jumbotron { | ||
+ | position: relative; | ||
+ | height: 600px; | ||
+ | } | ||
+ | .turniquet { | ||
+ | position: relative; | ||
+ | margin:0; | ||
+ | } | ||
+ | .turniquet li { | ||
+ | position:absolute; | ||
+ | display:block; | ||
+ | width:350px; | ||
+ | height:350px; | ||
+ | list-style: none; | ||
+ | max-height: 80px; | ||
+ | } | ||
+ | </style> | ||
</head> | </head> | ||
− | |||
<body> | <body> | ||
− | + | <div class="jumbotron"> | |
− | + | <ul class="turniquet"> | |
− | + | <li><img src="https://static.igem.org/mediawiki/2014/5/5b/BlackG_igem_logo.png" /></li> | |
− | < | + | <li><img src="https://static.igem.org/mediawiki/2014/5/5b/BlackG_igem_logo.png" /></li> |
− | < | + | <li><img src="https://static.igem.org/mediawiki/2014/5/5b/BlackG_igem_logo.png" /></li> |
− | + | </ul> | |
− | + | </div> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | < | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | </ | + | |
− | + | ||
− | </ | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</body> | </body> | ||
</html> | </html> |
Latest revision as of 23:53, 14 September 2015
<!DOCTYPE html>