Difference between revisions of "MediaWiki:Common.js"

From Interaction Station Wiki
Jump to navigation Jump to search
 
Line 104: Line 104:
 
         }
 
         }
 
       }
 
       }
 
//TABS
 
 
function openTab(evt, cityName) {
 
 
// Declare all variables
 
  var i, tabcontent, tablinks;
 
 
  // Get all elements with class="tabcontent" and hide them
 
  tabcontent = document.getElementsByClassName("tabcontent");
 
  for (i = 0; i < tabcontent.length; i++) {
 
    tabcontent[i].style.display = "none";
 
  }
 
 
  // Get all elements with class="tablinks" and remove the class "active"
 
  tablinks = document.getElementsByClassName("tablinks");
 
  for (i = 0; i < tablinks.length; i++) {
 
    tablinks[i].className = tablinks[i].className.replace(" active", "");
 
  }
 
 
  // Show the current tab, and add an "active" class to the button that opened the tab
 
  document.getElementById(cityName).style.display = "block";
 
  evt.currentTarget.className += " active";
 
}
 

Latest revision as of 12:07, 31 January 2022

/* Any JavaScript here will be loaded for all users on every page load. */

// Make the TOC draggable:

dragElement(document.getElementById("lessons"));
dragElement(document.getElementById("terminal"));

function dragElement(elmnt) {
  var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
  if (document.getElementById(elmnt.id + "header")) {
    // if present, the header is where you move the DIV from:
    document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
  } else {
    // otherwise, move the DIV from anywhere inside the DIV:
    elmnt.onmousedown = dragMouseDown;
  }

  function dragMouseDown(e) {
    e = e || window.event;
    e.preventDefault();
    // get the mouse cursor position at startup:
    pos3 = e.clientX;
    pos4 = e.clientY;
    document.onmouseup = closeDragElement;
    // call a function whenever the cursor moves:
    document.onmousemove = elementDrag;
  }

  function elementDrag(e) {
    e = e || window.event;
    e.preventDefault();
    // calculate the new cursor position:
    pos1 = pos3 - e.clientX;
    pos2 = pos4 - e.clientY;
    pos3 = e.clientX;
    pos4 = e.clientY;
    // set the element's new position:
    elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
    elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
  }

  function closeDragElement() {
    // stop moving when mouse button is released:
    document.onmouseup = null;
    document.onmousemove = null;
  }
}

// TERMINAL ON FRONT PAGE

function HideTerminal() {
const terminal = document.querySelector('#terminal');
  terminal.style.display = terminal.style.display === 'block' ? 'none' : 'block';
}

//TYPEWRITER 

//terminalIntro

var terminalIntro = ['programming', 'electronics', 'augmented & virtual reality', 'machine learning & AI'];
      var iIntro = 0;
      var countIntro = 0
      var selectedTextIntro = '';
      var textIntro = '';
      (function type() {
        if (countIntro == terminalIntro.length) {
          countIntro = 0;
        }
        selectedTextIntro = terminalIntro[countIntro];
        textIntro = selectedTextIntro.slice(0, ++iIntro);
        document.getElementById('terminalIntro').innerHTML = textIntro;
        if (textIntro.length === selectedTextIntro.length) {
          countIntro++;
          iIntro = 0;
        }
        setTimeout(type, 200);
      }());

//terminalCore

var terminalCore = ['We take an open and experimental approach to digital crafts, acknowledging that the definition of interaction is constantly shifting. We like to experiment with new tools, technologies and hardware, taking a critical eye to developing technologies and seeing how they can be appropriated for creative uses. We’re equally interested in how older technologies can be re-evaluated in contemporary contexts.\nMost importantly when we think of interaction, it is not only between people and machines, but interaction between people.\nThe instructors in the Interaction Station come from a variety of backgrounds, with diverse sets of expertise. We’re here to help you develop your ideas into working projects providing individual consultation, station skills and lessons.\nWe provide the space to experiment and build your projects, with a number of workspaces available to students.'];

      var iCore = 0;
      var countCore = 0
      var selectedTextCore = '';
      var textCore = '';
      (function type() {
        if (countCore == terminalCore.length) {
          countCore = 0;
        }
        selectedTextCore = terminalCore[countCore];
        textCore = selectedTextCore.slice(0, ++iCore);
        document.getElementById('terminalCore').innerHTML = textCore;
       
        setTimeout(type, 40);
      }());

      function sleep(milliseconds) {
        var start = new Date().getTime();
        for (var iCore = 0; iCore < 1e7; iCore++) {
          if ((new Date().getTime() - start) > milliseconds){
            break;
          }
        }
      }