|
|
(11 intermediate revisions not shown) |
Line 1: |
Line 1: |
- | {{:Team:Goettingen/header}}
| |
- | <html>
| |
- | <!-- main part of the subpage -->
| |
- | <div id="subpage">
| |
- | <!-- left column-->
| |
- | <div class="leftpart">
| |
- | <h3>Project</h3>
| |
- | <ul>
| |
- | <li><a href="project_overview">Overview</a></li>
| |
- | <li><a href="project_gallery">Gallery</a></li>
| |
- | <li><a href="project_drylab">Dry lab</a></li>
| |
- | <li><a href="project_wetlab">Wet lab</a></li>
| |
- | </ul>
| |
- | </div>
| |
- | <!-- end of left column-->
| |
| | | |
- | <!-- right column-->
| |
- | <div class="proRP">
| |
- | <h2>Gallery for the lab work</h2>
| |
- | <div class="gallery_single_part">
| |
- | <h3>Meet us in the lab!</h3>
| |
- | <ul class="gallery">
| |
- | <li><a href="https://static.igem.org/mediawiki/2014/4/4c/Goettingen_lab_photo0.jpg" rel="superbox[gallery][in_the_lab]><img src="https://static.igem.org/mediawiki/2014/b/b4/Goettingen_lab_photo0_reduced.jpg"></a></li>
| |
- | <li><a href="https://static.igem.org/mediawiki/2014/a/ae/Goettingen_lab_photo5.png" rel="superbox[gallery][in_the_lab]><img src="https://static.igem.org/mediawiki/2014/3/3d/Goettingen_lab_photo5_reduced.png"></a></li>
| |
- | <li><a href="https://static.igem.org/mediawiki/2014/1/10/Goettingen_lab_photo2.jpg" rel="superbox[gallery][in_the_lab]><img src="https://static.igem.org/mediawiki/2014/4/46/Goettingen_lab_photo2_reduced.jpg"></a></li>
| |
- | <li><a href="https://static.igem.org/mediawiki/2014/5/5d/Goettingen_lab_photo3.jpg" rel="superbox[gallery][in_the_lab]><img src="https://static.igem.org/mediawiki/2014/1/19/Goettingen_lab_photo3_reduced.jpg"></a></li>
| |
- | <li><a href="https://static.igem.org/mediawiki/2014/1/17/Goettingen_lab_photo1.jpg" rel="superbox[gallery][in_the_lab]><img src="https://static.igem.org/mediawiki/2014/3/34/Goettingen_lab_photo1_reduced.jpg"></a></li>
| |
- | <li><a href="https://static.igem.org/mediawiki/2014/3/3a/Goettingen_lab_photo4.jpg" rel="superbox[gallery][in_the_lab]><img src="https://static.igem.org/mediawiki/2014/c/c7/Goettingen_lab_photo4_reduced.jpg"></a></li>
| |
- | </ul>
| |
- | <br /><br />
| |
- | </div>
| |
- | </div>
| |
- | <!-- end of right column-->
| |
- |
| |
- | </div>
| |
- |
| |
- | <!-- superbox -->
| |
- | <script>
| |
- | $(function(){
| |
- | $.superbox();
| |
- | });
| |
- | $.superbox.settings = {
| |
- | boxId: "superbox", // Id attribute of the "superbox" element
| |
- | boxClasses: "", // Class of the "superbox" element
| |
- | overlayOpacity: .8, // Background opaqueness
| |
- | boxWidth: "600", // Default width of the box
| |
- | boxHeight: "400", // Default height of the box
| |
- | loadTxt: "Loading...", // Loading text
| |
- | closeTxt: "Close", // "Close" button text
| |
- | prevTxt: "Previous", // "Previous" button text
| |
- | nextTxt: "Next" // "Next" button text
| |
- | };
| |
- | ;(function($){
| |
- | // Local variables
| |
- | var $overlay, $wrapper, $container, $superbox, $closeBtn, $loading, $nextprev, $nextBtn, $prevBtn, settings,
| |
- | // Default settings
| |
- | defaultSettings = {
| |
- | boxId: "superbox",
| |
- | boxClasses: "",
| |
- | overlayOpacity: .8,
| |
- | boxWidth: "600",
| |
- | boxHeight: "400",
| |
- | loadTxt: "Loading...",
| |
- | closeTxt: "Close",
| |
- | prevTxt: "Previous",
| |
- | nextTxt: "Next",
| |
- | beforeShow: function(){}
| |
- | },
| |
- | galleryGroups = {},
| |
- | galleryMode = false,
| |
- | hideElts = $([]);
| |
- |
| |
- | // Init dispatcher
| |
- | $.superbox = function(){
| |
- | // Settings
| |
- | settings = $.extend({}, defaultSettings, $.superbox.settings);
| |
- | // If IE6, select elements to hide
| |
- | if ($.browser.msie && $.browser.version < 7){
| |
- | hideElts = hideElts.add("select");
| |
- | }
| |
- | // Create base elements
| |
- | createElements();
| |
- | // Dispatch types
| |
- | dispatch();
| |
- | };
| |
- |
| |
- | // Dispatch types
| |
- | function dispatch(){
| |
- |
| |
- | // Match all superbox links
| |
- | $("a[rel^=superbox],area[rel^=superbox]").each(function(){
| |
- |
| |
- | // Optimisation
| |
- | var $this = $(this),
| |
- | relAttr = $this.attr("rel"),
| |
- |
| |
- | // Match type (ex : superbox[gallery#my_id.my_class][my_gallery] > gallery
| |
- | type = relAttr.match(/^superbox\[([^#\.\]]+)/)[1],
| |
- |
| |
- | // Match additionnal classes or IDs (#xxx.yyy.zzz)
| |
- | boxCurrentAttrs = relAttr.replace("superbox", "").match(/([#\.][^#\.\]]+)/g) || [],
| |
- |
| |
- | // Box ID and classes
| |
- | newBoxId = settings.boxId,
| |
- | newBoxClasses = settings.boxClasses;
| |
- |
| |
- | // Additionnal rel settings
| |
- | this._relSettings = relAttr.replace("superbox["+ type + boxCurrentAttrs.join("") +"]", "");
| |
- |
| |
- | // Redefine settings
| |
- | $.each(boxCurrentAttrs, function(i, val){ // each class or id
| |
- | if (val.substr(0,1) == "#"){
| |
- | newBoxId = val.substr(1);
| |
- | }
| |
- | else if (val.substr(0,1) == "."){
| |
- | newBoxClasses += " " + val.substr(1);
| |
- | }
| |
- | });
| |
- |
| |
- | // Call type method
| |
- | if (type.search(/^image|gallery|iframe|content|ajax$/) != -1) {
| |
- | $this.superbox(type, {boxId: newBoxId, boxClasses: newBoxClasses});
| |
- | }
| |
- | });
| |
- | };
| |
- |
| |
- | /*-- Superbox Method --*/
| |
- | $.fn.superbox = function(type, curSettings){
| |
- | curSettings = $.extend({}, settings, curSettings);
| |
- | $.superbox[type](this, curSettings);
| |
- | };
| |
- |
| |
- | /*-- Types --*/
| |
- | $.extend($.superbox, {
| |
- |
| |
- | // Image
| |
- | image: function($elt, curSettings, type){
| |
- |
| |
- | var relSettings = getRelSettings($elt.get(0)),
| |
- | dimensions = false;
| |
- |
| |
- | // Extra settings
| |
- | if (relSettings && type == "gallery")
| |
- | dimensions = relSettings[1];
| |
- | else if (relSettings)
| |
- | dimensions = relSettings[0];
| |
- |
| |
- | // On click event
| |
- | $elt.click(function(e){
| |
- | e.preventDefault();
| |
- |
| |
- | prepareBox();
| |
- |
| |
- | // "Prev / Next" buttons
| |
- | if (type == "gallery")
| |
- | nextPrev($elt, relSettings[0]);
| |
- |
| |
- | // Loading anim
| |
- | initLoading(function(){
| |
- |
| |
- | // Dimensions
| |
- | var dims = false,
| |
- |
| |
- | // Image
| |
- | $curImg;
| |
- |
| |
- | if (dimensions) {
| |
- | dims = dimensions.split("x");
| |
- | }
| |
- |
| |
- | // Image
| |
- | $curImg = $('<img src="'+ $elt.attr("href") +'" title="'+ ($elt.attr("title") || $elt.text()) +'" />');
| |
- |
| |
- | // On image load
| |
- | $curImg.load(function(){
| |
- |
| |
- | // Resize
| |
- | resizeImageBox($curImg, dims);
| |
- |
| |
- | // Id and Classes
| |
- | setBoxAttrs({boxClasses: "image " + curSettings.boxClasses, boxId: curSettings.boxId});
| |
- |
| |
- | // Show box
| |
- | showBox();
| |
- |
| |
- | }).appendTo($innerbox);
| |
- |
| |
- | });
| |
- |
| |
- | });
| |
- | },
| |
- |
| |
- | // Gallery
| |
- | gallery: function($elt, curSettings){
| |
- |
| |
- | // Extra settings
| |
- | var extraSettings = getRelSettings($elt.get(0));
| |
- |
| |
- | // Create group
| |
- | if(!galleryGroups[extraSettings[0]]) {
| |
- | galleryGroups[extraSettings[0]] = [];
| |
- | }
| |
- |
| |
- | // Add element to current group
| |
- | galleryGroups[extraSettings[0]].push($elt);
| |
- |
| |
- | $elt.get(0)._superboxGroupKey = (galleryGroups[extraSettings[0]].length - 1);
| |
- |
| |
- | // Image Box
| |
- | $.superbox["image"]($elt, curSettings, "gallery");
| |
- | },
| |
- |
| |
- | // iframe
| |
- | iframe: function($elt, curSettings){
| |
- |
| |
- | // Extra settings
| |
- | var extraSettings = getRelSettings($elt.get(0));
| |
- |
| |
- | // On click event
| |
- | $elt.click(function(e){
| |
- | e.preventDefault();
| |
- |
| |
- | prepareBox();
| |
- |
| |
- | // Loading anim
| |
- | initLoading(function(){
| |
- |
| |
- | // Dimensions
| |
- | var dims = false,
| |
- |
| |
- | // iframe
| |
- | $iframe;
| |
- |
| |
- | if (extraSettings) {
| |
- | dims = extraSettings[0].split("x");
| |
- | }
| |
- |
| |
- | curSettings = $.extend({}, curSettings, {
| |
- | boxWidth: dims[0] || curSettings.boxWidth,
| |
- | boxHeight: dims[1] || curSettings.boxHeight
| |
- | });
| |
- |
| |
- | // iframe
| |
- | $iframe = $('<iframe src="'+ $elt.attr("href") +'" name="'+ $elt.attr("href") +'" frameborder="0" scrolling="auto" hspace="0" width="'+ curSettings.boxWidth +'" height="'+ curSettings.boxHeight +'"></iframe>');
| |
- |
| |
- | // On iframe load
| |
- | $iframe.load(function(){
| |
- |
| |
- | // Specified dimensions
| |
- | $superbox.width( curSettings.boxWidth+"px" );
| |
- | $innerbox.height( curSettings.boxHeight+"px" );
| |
- |
| |
- | // Id and Classes
| |
- | setBoxAttrs({boxClasses: "iframe " + curSettings.boxClasses, boxId: curSettings.boxId});
| |
- |
| |
- | // Show box
| |
- | showBox();
| |
- |
| |
- | }).appendTo($innerbox);
| |
- | });
| |
- |
| |
- | });
| |
- | },
| |
- |
| |
- | // Content
| |
- | content: function($elt, curSettings){
| |
- | // Extra settings
| |
- | var extraSettings = getRelSettings($elt.get(0));
| |
- |
| |
- | // On click event
| |
- | $elt.click(function(e){
| |
- | e.preventDefault();
| |
- |
| |
- | prepareBox();
| |
- |
| |
- | // Loading anim
| |
- | initLoading(function(){
| |
- |
| |
- | // Dimensions
| |
- | var dims = false;
| |
- | if (extraSettings)
| |
- | dims = extraSettings[0].split("x");
| |
- |
| |
- | curSettings = $.extend({}, curSettings, {
| |
- | boxWidth: dims[0] || curSettings.boxWidth,
| |
- | boxHeight: dims[1] || curSettings.boxHeight
| |
- | });
| |
- |
| |
- | // Specified dimensions
| |
- | $superbox.width( curSettings.boxWidth+"px" );
| |
- | $innerbox.height( curSettings.boxHeight+"px" );
| |
- |
| |
- | $($elt.attr('href')).clone().appendTo($innerbox).show();
| |
- |
| |
- | // Id and Classes
| |
- | setBoxAttrs({boxClasses: "content " + curSettings.boxClasses, boxId: curSettings.boxId});
| |
- |
| |
- | // Show box
| |
- | showBox();
| |
- | });
| |
- |
| |
- | });
| |
- | },
| |
- |
| |
- | // Ajax
| |
- | ajax: function($elt, curSettings){
| |
- |
| |
- | // Extra settings
| |
- | var extraSettings = getRelSettings($elt.get(0));
| |
- |
| |
- | // On click event
| |
- | $elt.click(function(e){
| |
- | e.preventDefault();
| |
- |
| |
- | prepareBox();
| |
- |
| |
- | // Loading anim
| |
- | initLoading(function(){
| |
- |
| |
- | // Dimensions
| |
- | var dims = false;
| |
- | if (extraSettings && extraSettings[3]) {
| |
- | dims = extraSettings[3].split("x");
| |
- | }
| |
- |
| |
- | // Extend default dimension settings
| |
- | curSettings = $.extend({}, curSettings, {
| |
- | boxWidth: dims[0] || curSettings.boxWidth,
| |
- | boxHeight: dims[1] || curSettings.boxHeight
| |
- | });
| |
- |
| |
- | // Specified dimensions
| |
- | $superbox.width( curSettings.boxWidth+"px" );
| |
- | $innerbox.height( curSettings.boxHeight+"px" );
| |
- |
| |
- | $.get( extraSettings[2], function(data){
| |
- | $(data).appendTo($innerbox);
| |
- | });
| |
- |
| |
- | // Id and Classes
| |
- | setBoxAttrs({boxClasses: "ajax " + curSettings.boxClasses, boxId: curSettings.boxId});
| |
- |
| |
- | // Show box
| |
- | showBox();
| |
- | });
| |
- | });
| |
- | }
| |
- | });
| |
- |
| |
- |
| |
- | // Get extra settings in rel attribute
| |
- | function getRelSettings(elt){
| |
- | return elt._relSettings.match(/([^\[\]]+)/g);
| |
- | };
| |
- |
| |
- | // Set image box dimensions
| |
- | function resizeImageBox($curImg, dims){
| |
- |
| |
- | // Auto
| |
- | $superbox.width($curImg.width() + ($innerbox.css("paddingLeft").slice(0,-2)-0) + ($innerbox.css("paddingRight").slice(0,-2)-0)); // Padding ajouté, pour corriger le problème de définition padding sur $innerbox
| |
- | $innerbox.height($curImg.height());
| |
- |
| |
- | // Specified
| |
- | if (dims && dims[0] != "") {
| |
- | $superbox.width(dims[0] + "px");
| |
- | }
| |
- | if (dims && dims[1] != "" && dims[1] > $curImg.height()) {
| |
- | $innerbox.height(dims[1] + "px");
| |
- | }
| |
- | };
| |
- |
| |
- | // Next / Previous
| |
- | function nextPrev($elt, group){
| |
- | $nextprev.show();
| |
- |
| |
- | galleryMode = true;
| |
- |
| |
- | var nextKey = $elt.get(0)._superboxGroupKey + 1,
| |
- | prevKey = nextKey - 2;
| |
- |
| |
- | // Next
| |
- | if (galleryGroups[group][nextKey]){
| |
- | $nextBtn.removeClass("disabled").unbind("click").bind("click", function(){
| |
- | galleryGroups[group][nextKey].click();
| |
- | });
| |
- | }
| |
- | else
| |
- | $nextBtn.addClass("disabled").unbind("click");
| |
- |
| |
- | // Prev
| |
- | if (galleryGroups[group][prevKey]){
| |
- | $prevBtn.removeClass("disabled").unbind("click").bind("click", function(){
| |
- | galleryGroups[group][prevKey].click();
| |
- | });
| |
- | }
| |
- | else
| |
- | $prevBtn.addClass("disabled").unbind("click");
| |
- | };
| |
- |
| |
- | // Set ID and Class
| |
- | function setBoxAttrs(attrs){
| |
- | $superbox.attr("id", attrs.boxId).attr("class", attrs.boxClasses);
| |
- | };
| |
- |
| |
- | // Hide Box
| |
- | function hideBox(){
| |
- | $(document).unbind("keydown");
| |
- | $loading.hide();
| |
- | $nextprev.hide();
| |
- | $wrapper.hide().css({position: "fixed", top: 0});
| |
- | $innerbox.empty();
| |
- | };
| |
- |
| |
- | // Hide Box + Overlay
| |
- | function hideAll(callback){
| |
- | hideBox();
| |
- | $overlay.fadeOut(300, function(){
| |
- | // Show hidden elements for IE6
| |
- | hideElts.show();
| |
- | });
| |
- | galleryMode = false;
| |
- | };
| |
- |
| |
- | // "Loading..."
| |
- | function initLoading(callback){
| |
- |
| |
- | var loading = function(){
| |
- |
| |
- | // IE6
| |
- | if($.browser.msie && $.browser.version < 7){
| |
- | $wrapper.css({position: "absolute", top:"50%"});
| |
- | }
| |
- |
| |
- | // Hide elements for IE6
| |
- | hideElts.hide();
| |
- |
| |
- | $loading.show();
| |
- | callback();
| |
- | };
| |
- |
| |
- | if (galleryMode){
| |
- | $overlay.css("opacity", settings.overlayOpacity).show();
| |
- | loading();
| |
- | }
| |
- | else {
| |
- | $overlay.css("opacity", 0).show().fadeTo(300, settings.overlayOpacity, loading);
| |
- | }
| |
- | };
| |
- | // "Prepare" box : Show $superbox with top:-99999px;
| |
- | function prepareBox(){
| |
- | $wrapper.show();
| |
- | $innerbox.empty();
| |
- | $superbox.css({position: "absolute", top: "-99999px"});
| |
- | };
| |
- |
| |
- | // Display box
| |
- | function showBox(curSettings, $elt){
| |
- | // Stop "Loading..."
| |
- | $loading.hide();
| |
- | // Keys shortcuts
| |
- | $(document).unbind("keydown").bind("keydown",function(e){
| |
- | // Escape
| |
- | if (e.keyCode == 27)
| |
- | hideAll();
| |
- | // Left/right arrows
| |
- | if (e.keyCode == 39 && $nextBtn.is(":visible"))
| |
- | $nextBtn.click();
| |
- | if (e.keyCode == 37 && $prevBtn.is(":visible"))
| |
- | $prevBtn.click();
| |
- | });
| |
- | // Show $superbox
| |
- | $superbox.css({position: "static", top: 0, opacity: 0});
| |
- | // IE6 and IE7
| |
- | if ($.browser.msie && $.browser.version < 8){
| |
- | $superbox.css({position: "relative", top:"-50%"});
| |
- | // IE6
| |
- | if ($.browser.msie && $.browser.version < 7)
| |
- | $wrapper.css({position: "absolute", top:"50%"});
| |
- | }
| |
- | // Position absolute if image height > window height
| |
- | if ( $(window).height() < $wrapper.height() ){
| |
- | $wrapper.css({position: "absolute", top: ($wrapper.offset().top + 10) + "px"});
| |
- | }
| |
- | settings.beforeShow();
| |
- | $superbox.fadeTo(300,1);
| |
- |
| |
- | };
| |
- |
| |
- | // Create base elements (overlay, wrapper, box, loading)
| |
- | function createElements(){
| |
- | if (!$.superbox.elementsReady){
| |
- | // Overlay (background)
| |
- | $overlay = $('<div id="superbox-overlay"></div>').appendTo("body").hide();
| |
- | // Wrapper
| |
- | $wrapper = $('<div id="superbox-wrapper"></div>').appendTo("body").hide();
| |
- | // Box container
| |
- | $container = $('<div id="superbox-container"></div>').appendTo($wrapper);
| |
- | // Box
| |
- | $superbox = $('<div id="superbox"></div>').appendTo($container);
| |
- | // Inner box
| |
- | $innerbox = $('<div id="superbox-innerbox"></div>').appendTo($superbox);
| |
- | // "Next / Previous"
| |
- | $nextprev = $('<p class="nextprev"></p>').appendTo($superbox).hide();
| |
- | $prevBtn = $('<a class="prev"><strong><span>'+ settings.prevTxt +'</span></strong></a>').appendTo($nextprev);
| |
- | $nextBtn = $('<a class="next"><strong><span>'+ settings.nextTxt +'</span></strong></a>').appendTo($nextprev);
| |
- |
| |
- | // Add close button
| |
- | $closeBtn = $('<p class="close"><a><strong><span>'+ settings.closeTxt +'</span></strong></a></p>').prependTo($superbox).find("a");
| |
- | // "Loading..."
| |
- | $loading = $('<p class="loading">'+ settings.loadTxt +'</p>').appendTo($container).hide();
| |
- | // Hide on click
| |
- | $overlay.add($wrapper).add($closeBtn).click(function(){
| |
- | hideAll();
| |
- | });
| |
- | // Remove "hide on click" on superbox
| |
- | $superbox.click(function(e){
| |
- | e.stopPropagation();
| |
- | });
| |
- | // Dont call this function twice
| |
- | $.superbox.elementsReady = true;
| |
- | }
| |
- | };
| |
- | })(jQuery);
| |
- | </script>
| |
- | </body>
| |
- | </html>
| |