MediaWiki:Common.js
Jump to navigation
Jump to search
Note: After publishing, 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: Press Ctrl-F5.
/* nemesis */
$(function() {
mw.util.addCSS('@keyframes nemesis-modal-vertical{0%{transform:translate(0,-42px);}50%{transform: translate(0,42px);}100%{transform:translate(0,-42px);}}nav#nemesis-modal{position:fixed;top:120px;left:0;z-index:100000;}nav#nemesis-modal .nemesis-modal-vertical{animation: nemesis-modal-vertical 3s ease-in-out infinite;}nav#nemesis-modal .nemesis-modal-horizontal{position:absolute;}');
var container,
nemesis,
horizontalOffset = -200, // x axis initial distance in pixels
horizontalSpeed = 200, // 'horizontalSpeed'px every second
horizontalSpeedFactor = 1, // change velocity relatively
triggerMoment = 0, // minutes (as in hh:mm) at which it is triggered
isRunning = false;
container = $(
'<nav id="nemesis-modal">\n' +
'\t<div class="nemesis-modal-horizontal">\n' +
'\t\t<div class="nemesis-modal-vertical">\n' +
'\t\t\t<div class="nemesis-modal-container">\n' +
'\t\t\t</div>\n' +
'\t\t</div>\n' +
'\t</div>\n' +
'</nav>'
);
nemesis = $('<img src="http://galaxyonfire.wikia.com/wiki/File:Nemesis_Transparent.png" width="120" />');
function onTrigger() {
console.log("triggered");
// once an hour, this shall be triggered
var rnd = Math.random();
if (rnd < 0.001) {
$(container).find(".nemesis-modal-container").html("").append(
'<div style="position: relative;">' +
'\t<iframe src="https://www.youtube.com/embed/DLzxrzFCyOs?rel=0&modestbranding=1&autohide=1&showinfo=0&controls=0&autoplay=1" width="120" height="90" />\n' +
'\t<div style="width: 120px; height: 90px; position: absolute; top: 0; left: 0;"></div>\n' +
'</div>'
);
horizontalSpeedFactor = 0.25;
setTimeout(function() {
horizontalSpeedFactor = 1;
$(container).find(".nemesis-modal-container").html(nemesis); // return back to normal
},60000);
}
}
function setPosition() {
requestAnimationFrame(setPosition);
var t = new Date(),
currPos,
minutes = t.getUTCMinutes();
if (minutes === triggerMoment) {
if (!isRunning) {
onTrigger();
}
isRunning = true;
currPos = horizontalOffset + horizontalSpeed * horizontalSpeedFactor * (t.getUTCSeconds() + t.getUTCMilliseconds() / 1000);
$(container).find(".nemesis-modal-horizontal").css("left", String(currPos) + "px");
}
if (isRunning && minutes !== triggerMoment) {
// animation over
isRunning = false;
}
}
$(container).find(".nemesis-modal-horizontal").css("left", String(horizontalOffset) + "px");
setPosition();
$(container).find(".nemesis-modal-container").append(nemesis).on("contextmenu click mouseover", function(e) {
e.preventDefault();
});
$("body").append(container);
});