@@ -4,7 +4,6 @@ https://git.opengamestudio.org/mahjong/mahjong-ui | |||||
x /окончание|ending.js | x /окончание|ending.js | ||||
/окончание|ending.череда | /окончание|ending.череда | ||||
x /плавное-отображение-скрытие|smooth-show-hide.js | |||||
x /приветствие|welcome.js | x /приветствие|welcome.js | ||||
/приветствие|welcome.череда | /приветствие|welcome.череда | ||||
x /пуск|run.js | x /пуск|run.js | ||||
@@ -75,11 +75,18 @@ | |||||
СоздатьОкноОкончания = мир => | СоздатьОкноОкончания = мир => | ||||
{ | { | ||||
var окно = document.createElement("div"); | |||||
окно.id = "окно-окончания"; | |||||
окно.style.display = "none"; | |||||
document.body.appendChild(окно); | |||||
мир.окна.окончание = { | мир.окна.окончание = { | ||||
"указатель": "окно-окончания", | |||||
"указатель": окно.id, | |||||
"элемент": окно, | |||||
"плавно": new ПлавноОтобразитьСкрыть(окно), | |||||
}; | }; | ||||
const html = ` | |||||
окно.innerHTML = ` | |||||
<div id="${мир.окна.окончание.указатель}-тело"> | <div id="${мир.окна.окончание.указатель}-тело"> | ||||
<center> | <center> | ||||
<span id="${мир.окна.окончание.указатель}-содержимое"> | <span id="${мир.окна.окончание.указатель}-содержимое"> | ||||
@@ -90,15 +97,5 @@ | |||||
</p> | </p> | ||||
</center> | </center> | ||||
</div> | </div> | ||||
`; | `; | ||||
var окно = document.createElement("div"); | |||||
окно.id = мир.окна.окончание.указатель; | |||||
окно.innerHTML = html; | |||||
окно.style.display = "none"; | |||||
document.body.appendChild(окно); | |||||
мир.окна.окончание.элемент = окно; | |||||
мир.окна.окончание.плавно = new ПлавноеОтображениеИСкрытиеЭлемента(окно); | |||||
}; | }; |
@@ -1,103 +0,0 @@ | |||||
function ПлавноеОтображениеИСкрытиеЭлемента(элемент, настройки) | |||||
{ | |||||
if (!настройки) | |||||
{ | |||||
настройки = { | |||||
"прозрачность": 1, | |||||
}; | |||||
} | |||||
this.отобразить = () => | |||||
{ | |||||
this.показываем = true; | |||||
элемент.style.display = "block"; | |||||
this.преобразования.innerHTML = ` | |||||
#${элемент.id} | |||||
{ | |||||
opacity: 0; | |||||
animation: ${элемент.id}ПлавноОтобразить 0.4s ease; | |||||
animation-fill-mode: forwards; | |||||
} | |||||
`; | |||||
}; | |||||
this.скрыть = () => | |||||
{ | |||||
this.показываем = false; | |||||
this.преобразования.innerHTML = ` | |||||
#${элемент.id} | |||||
{ | |||||
opacity: ${настройки.прозрачность}; | |||||
animation: ${элемент.id}ПлавноСкрыть 0.4s ease; | |||||
animation-fill-mode: forwards; | |||||
} | |||||
`; | |||||
}; | |||||
this.__создатьКадры = () => | |||||
{ | |||||
this.кадры = document.createElement("style"); | |||||
document.head.appendChild(this.кадры); | |||||
this.кадры.innerHTML = ` | |||||
@keyframes ${элемент.id}ПлавноОтобразить | |||||
{ | |||||
0% | |||||
{ | |||||
opacity: 0; | |||||
} | |||||
100% | |||||
{ | |||||
opacity: ${настройки.прозрачность}; | |||||
} | |||||
} | |||||
@keyframes ${элемент.id}ПлавноСкрыть | |||||
{ | |||||
0% | |||||
{ | |||||
opacity: ${настройки.прозрачность}; | |||||
} | |||||
100% | |||||
{ | |||||
opacity: 0; | |||||
} | |||||
} | |||||
`; | |||||
}; | |||||
this.__создатьПреобразования = () => | |||||
{ | |||||
this.преобразования = document.createElement("style"); | |||||
document.head.appendChild(this.преобразования); | |||||
}; | |||||
this.__отслеживатьЗавершениеАнимации = () => | |||||
{ | |||||
this.отклик = {}; | |||||
this.показываем = true; | |||||
var тут = this; | |||||
элемент.addEventListener( | |||||
"animationend", | |||||
function() | |||||
{ | |||||
if (тут.показываем && тут.отклик.отображение) | |||||
{ | |||||
тут.отклик.отображение(); | |||||
} | |||||
else if (!тут.показываем) | |||||
{ | |||||
элемент.style.display = "none"; | |||||
if (тут.отклик.скрытие) | |||||
{ | |||||
тут.отклик.скрытие(); | |||||
} | |||||
} | |||||
} | |||||
); | |||||
}; | |||||
// Конструктор. | |||||
this.__создатьКадры(); | |||||
this.__создатьПреобразования(); | |||||
this.__отслеживатьЗавершениеАнимации(); | |||||
}; |
@@ -84,12 +84,19 @@ | |||||
СоздатьОкноПриветствия = мир => | СоздатьОкноПриветствия = мир => | ||||
{ | { | ||||
var окно = document.createElement("div"); | |||||
окно.id = "окно-приветствия"; | |||||
окно.style.display = "none"; | |||||
document.body.appendChild(окно); | |||||
мир.окна.приветствие = { | мир.окна.приветствие = { | ||||
"указатель": "окно-приветствия", | |||||
"указатель": окно.id, | |||||
"элемент": окно, | |||||
"плавно": new ПлавноОтобразитьСкрыть(окно), | |||||
}; | }; | ||||
const html = ` | |||||
<div id="${мир.окна.приветствие.указатель}-тело"> | |||||
окно.innerHTML = ` | |||||
<div id="${окно.id}-тело"> | |||||
<center> | <center> | ||||
<p> | <p> | ||||
<span class="uk-text-large">Маджонг</span> | <span class="uk-text-large">Маджонг</span> | ||||
@@ -100,24 +107,14 @@ | |||||
<hr class="uk-divider-icon"> | <hr class="uk-divider-icon"> | ||||
<p uk-margin> | <p uk-margin> | ||||
<p>Выберите раскладку: | 选择布局: | Select layout:</p> | <p>Выберите раскладку: | 选择布局: | Select layout:</p> | ||||
<button id="${мир.окна.приветствие.указатель}-X" class="uk-button uk-button-default">X</button> | |||||
<button id="${мир.окна.приветствие.указатель}-😀" class="uk-button uk-button-default">😀</button> | |||||
<button id="${мир.окна.приветствие.указатель}-😭" class="uk-button uk-button-default">😭</button> | |||||
<button id="${окно.id}-X" class="uk-button uk-button-default">X</button> | |||||
<button id="${окно.id}-😀" class="uk-button uk-button-default">😀</button> | |||||
<button id="${окно.id}-😭" class="uk-button uk-button-default">😭</button> | |||||
</p> | </p> | ||||
</center> | </center> | ||||
</div> | </div> | ||||
`; | `; | ||||
var окно = document.createElement("div"); | |||||
окно.id = мир.окна.приветствие.указатель; | |||||
окно.innerHTML = html; | |||||
окно.style.display = "none"; | |||||
document.body.appendChild(окно); | |||||
мир.окна.приветствие.элемент = окно; | |||||
мир.окна.приветствие.плавно = new ПлавноеОтображениеИСкрытиеЭлемента(окно); | |||||
$(`#${мир.окна.приветствие.указатель}-X`).click(function() { | $(`#${мир.окна.приветствие.указатель}-X`).click(function() { | ||||
мир.уведомить("кнопка раскладки X"); | мир.уведомить("кнопка раскладки X"); | ||||
}); | }); | ||||
@@ -31,7 +31,7 @@ | |||||
left: 0; | left: 0; | ||||
top: 0; | top: 0; | ||||
bottom: 0; | bottom: 0; | ||||
width: 50%; | |||||
/*width: 50%;*/ | |||||
} | } | ||||
#скрыть-раскладки | #скрыть-раскладки | ||||
@@ -56,13 +56,12 @@ | |||||
окно.style.display = "none"; | окно.style.display = "none"; | ||||
document.body.appendChild(окно); | document.body.appendChild(окно); | ||||
var настройки = { | |||||
"прозрачность": 0.8, | |||||
}; | |||||
мир.окна.раскладки = { | мир.окна.раскладки = { | ||||
"указатель": окно.id, | "указатель": окно.id, | ||||
"элемент": окно, | "элемент": окно, | ||||
"плавно": new ПлавноеОтображениеИСкрытиеЭлемента(окно, настройки), | |||||
"плавно": new ПлавноОтобразитьСкрыть(окно, { | |||||
"прозрачность": 0.8, | |||||
}), | |||||
}; | }; | ||||
окно.innerHTML = ` | окно.innerHTML = ` | ||||
@@ -36,13 +36,12 @@ opacity: 0.5; | |||||
display: none; | display: none; | ||||
`; | `; | ||||
var настройки = { | |||||
"прозрачность": 0.5, | |||||
}; | |||||
мир.окна.подложка = { | мир.окна.подложка = { | ||||
"указатель": "окно-подложка", | "указатель": "окно-подложка", | ||||
"элемент": окно, | "элемент": окно, | ||||
"плавно": new ПлавноеОтображениеИСкрытиеЭлемента(окно, настройки), | |||||
"плавно": new ПлавноОтобразитьСкрыть(окно, { | |||||
"прозрачность": 0.5, | |||||
}), | |||||
}; | }; | ||||
}; | }; | ||||
@@ -139,23 +138,27 @@ transform: translateX(-50%) translateY(-50%); | |||||
// // // // | // // // // | ||||
ПоказатьОкноУправления = мир => | |||||
ПлавноПоказатьОкноУправления = мир => | |||||
{ | { | ||||
мир.окна.управление.элемент.style.display = "block"; | |||||
мир.окна.управление.плавно.отобразить(); | |||||
}; | }; | ||||
// // // // | // // // // | ||||
СоздатьОкноУправления = мир => | |||||
ПлавноСкрытьОкноУправления = мир => | |||||
{ | { | ||||
мир.окна.управление = { | |||||
"указатель": "окно-управления", | |||||
}; | |||||
мир.окна.управление.плавно.скрыть(); | |||||
} | |||||
// // // // | |||||
СоздатьОкноУправления = мир => | |||||
{ | |||||
var окно = document.createElement("div"); | var окно = document.createElement("div"); | ||||
окно.id = мир.окна.управление.указатель; | |||||
окно.id = "окно-управления"; | |||||
document.body.appendChild(окно); | document.body.appendChild(окно); | ||||
окно.style = ` | окно.style = ` | ||||
position: absolute; | position: absolute; | ||||
@@ -165,5 +168,9 @@ right: 0; | |||||
bottom: 0; | bottom: 0; | ||||
`; | `; | ||||
окно.style.display = "none"; | окно.style.display = "none"; | ||||
мир.окна.управление.элемент = окно; | |||||
мир.окна.управление = { | |||||
"указатель": окно.id, | |||||
"элемент": окно, | |||||
"плавно": new ПлавноОтобразитьСкрыть(окно), | |||||
}; | |||||
}; | }; |
@@ -3,11 +3,17 @@ | |||||
создать элементы управления масштабом | создать элементы управления масштабом | ||||
создать кнопку раскладки | создать кнопку раскладки | ||||
создать подложку | создать подложку | ||||
выбрали раскладку | |||||
показать окно управления | |||||
кнопка увеличения масштаба | кнопка увеличения масштаба | ||||
увеличить масштаб | увеличить масштаб | ||||
кнопка уменьшения масштаба | кнопка уменьшения масштаба | ||||
уменьшить масштаб | уменьшить масштаб | ||||
изменили масштаб | изменили масштаб | ||||
сообщить текущее значение масштаба | |||||
сообщить текущее значение масштаба | |||||
выбрали раскладку | |||||
плавно показать окно управления | |||||
кнопка показать раскладки | |||||
плавно скрыть окно управления | |||||
кнопка скрыть раскладки | |||||
плавно показать окно управления |