Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
Line 53: | Line 53: | ||
Terminal.style.display = Terminal.style.display === 'block' ? 'none' : 'block'; | Terminal.style.display = Terminal.style.display === 'block' ? 'none' : 'block'; | ||
} | } | ||
+ | |||
+ | //TYPEWRITER | ||
+ | |||
+ | var typeString = ['programming;', 'electronics;', 'augmented and virtual reality;', 'real-time 3d;', 'machine learning and AI;']; | ||
+ | var i = 0; | ||
+ | var count = 0 | ||
+ | var selectedText = ''; | ||
+ | var text = ''; | ||
+ | (function type() { | ||
+ | if (count == typeString.length) { | ||
+ | count = 0; | ||
+ | } | ||
+ | selectedText = typeString[count]; | ||
+ | text = selectedText.slice(0, ++i); | ||
+ | document.getElementById('terminalTyping').innerHTML = text; | ||
+ | if (text.length === selectedText.length) { | ||
+ | count++; | ||
+ | i = 0; | ||
+ | } | ||
+ | setTimeout(type, 180); | ||
+ | }()); | ||
+ | |||
+ | function sleep(milliseconds) { | ||
+ | var start = new Date().getTime(); | ||
+ | for (var i = 0; i < 1e7; i++) { | ||
+ | if ((new Date().getTime() - start) > milliseconds){ | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } |
Revision as of 16:09, 26 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
var typeString = ['programming;', 'electronics;', 'augmented and virtual reality;', 'real-time 3d;', 'machine learning and AI;'];
var i = 0;
var count = 0
var selectedText = '';
var text = '';
(function type() {
if (count == typeString.length) {
count = 0;
}
selectedText = typeString[count];
text = selectedText.slice(0, ++i);
document.getElementById('terminalTyping').innerHTML = text;
if (text.length === selectedText.length) {
count++;
i = 0;
}
setTimeout(type, 180);
}());
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}