MediaWiki:Common.js

From Interaction Station Wiki
Jump to navigation Jump to search

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/* 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;
          }
        }
      }