|
|
(не показаны 43 промежуточные версии этого же участника) |
Строка 1: |
Строка 1: |
| /* Для тестирования разной фигни. | | /* Для тестирования разной фигни. |
− | * Загружается через MediaWiki:Common.js | + | * Подгружается через MediaWiki:Common.js |
| */ | | */ |
− |
| |
− | //Простенький таймер
| |
− | var headerList = document.querySelector("#p-personal .pBody ul"),
| |
− | timerElem = document.createElement("li");
| |
− |
| |
− | timerElem.setAttribute("id", "pt-timer");
| |
− | headerList.insertBefore(timerElem, headerList.firstElementChild);
| |
− |
| |
− | (function timer() {
| |
− | var d = new Date(), offset = (-1 * d.getTimezoneOffset() / 60), offsetStr;
| |
− |
| |
− | if (offset > 0) offsetStr = "+" + offset;
| |
− | else if (offset < 0) offsetStr = offset;
| |
− |
| |
− | timerElem.innerHTML = pad(d.getUTCHours()) + ":" + pad(d.getUTCMinutes()) + ":" + pad(d.getUTCSeconds()) + " UTC" +
| |
− | " (" + pad(d.getHours()) + ":" + pad(d.getMinutes()) + ":" + pad(d.getSeconds()) + " UTC" + offsetStr + ")";
| |
− | setTimeout(timer, 1000);
| |
− | })();
| |
− |
| |
− | function pad(d) {
| |
− | return (d < 10 ? "0" : "") + d;
| |
− | }
| |
− |
| |
− |
| |
− | //Генерация падающих снежинок (работает только зимой)
| |
− | (function() {
| |
− | var month = new Date().getMonth(), snowflakesContainer, snowflakeAnimIterMax;
| |
− |
| |
− | if (month > 1 && month < 11) return;
| |
− |
| |
− | snowflakesContainer = document.createElement("div");
| |
− | snowflakesContainer.setAttribute("class", "snowflakes-container");
| |
− | snowflakesContainer.ondragstart = function() {
| |
− | return false;
| |
− | };
| |
− | document.body.appendChild(snowflakesContainer);
| |
− | snowflakeAnimIterMax = 40;
| |
− |
| |
− | createSnowflake();
| |
− | setInterval(createSnowflake, 2500);
| |
− |
| |
− | function createSnowflake() {
| |
− | var snowflake = document.createElement("div"),
| |
− | windowWidth = document.documentElement.clientWidth,
| |
− | snowflakeLeftOrigin = Math.random() * windowWidth ^ 0,
| |
− | snowflakemoveDirection = Math.random() * 2 ^ 0,
| |
− | snowflakeDownStep = 80,
| |
− | snowflakeSideStep = 30,
| |
− | snowflakeAnimIterCount = 0,
| |
− | snowflakeHeight;
| |
− |
| |
− | snowflake.innerHTML = "❄";
| |
− | snowflake.setAttribute("class", "snowflake snowflake-falling");
| |
− | snowflakesContainer.appendChild(snowflake);
| |
− |
| |
− | snowflake.style.top = -snowflake.offsetHeight + "px";
| |
− | snowflakeLeftOrigin = (snowflakeLeftOrigin + snowflake.offsetWidth +
| |
− | snowflakeSideStep + 3 > windowWidth) ? windowWidth - snowflake.offsetWidth -
| |
− | snowflakeSideStep - 3 : snowflakeLeftOrigin;
| |
− | snowflake.style.left = snowflakeLeftOrigin + "px";
| |
− | snowflakeHeight = snowflake.offsetHeight;
| |
− |
| |
− | (function animateSnowflake() {
| |
− | var snowflakeTop = parseInt(getComputedStyle(snowflake).top);
| |
− |
| |
− | if (snowflakeAnimIterCount > snowflakeAnimIterMax) {
| |
− | snowflakesContainer.removeChild(snowflake);
| |
− | return;
| |
− | }
| |
− |
| |
− | if (snowflakeTop + snowflakeHeight + snowflakeDownStep + 2 < getPageScrollHeight()) {
| |
− | snowflake.style.top = snowflakeTop + snowflakeDownStep + "px";
| |
− |
| |
− | if (snowflakemoveDirection) {
| |
− | snowflake.style.left = snowflakeLeftOrigin + snowflakeSideStep + "px";
| |
− | snowflake.style.transform = "rotate(180deg)";
| |
− | } else {
| |
− | snowflake.style.left = snowflakeLeftOrigin - snowflakeSideStep + "px";
| |
− | snowflake.style.transform = "rotate(-180deg)";
| |
− | }
| |
− |
| |
− | snowflakemoveDirection = !snowflakemoveDirection;
| |
− | ++snowflakeAnimIterCount;
| |
− |
| |
− | setTimeout(animateSnowflake, 1500);
| |
− | } else {
| |
− | snowflake.setAttribute("class", "snowflake snowflake-fell");
| |
− | snowflake.style.top = getPageScrollHeight() - snowflakeHeight - 2 + "px";
| |
− | snowflake.style.left = snowflakeLeftOrigin + "px";
| |
− | snowflake.style.transform = "rotate(0deg)";
| |
− |
| |
− | setTimeout(function() {
| |
− | snowflakesContainer.removeChild(snowflake);
| |
− | }, 20000);
| |
− | }
| |
− | })();
| |
− | }
| |
− |
| |
− | function getPageScrollHeight() {
| |
− | return Math.max(
| |
− | document.body.scrollHeight, document.documentElement.scrollHeight,
| |
− | document.body.offsetHeight, document.documentElement.offsetHeight,
| |
− | document.body.clientHeight, document.documentElement.clientHeight
| |
− | );
| |
− | }
| |
− | })();
| |