Panorama Tooltip Panel

Bacchus

Пользователь
25 Ноя 2021
17
1
Проект
Gods&Avatars
Сделал всплывающее окно, которое появляется при наведении на другое окно.
Первое и второе окно - отдельные файлы xml, css, js.
Файлы xml добавил в custom_ui_manifest.xml

Вот скрипт обработки наведения курсора мыши.

JavaScript:
function OnMouseOver()
{
    $.Msg("OnMouseOver");
    dotaH.FindChildrenWithClassTraverse("stat-tooltip-root")[0].style.visibility = "visible";

}

function OnMouseOut()
{
    $.Msg("OnMouseOut");
    dotaH.FindChildrenWithClassTraverse("stat-tooltip-root")[0].style.visibility = "collapse";
}



Вот только никак не получается скрыть всплывающую панель при запуске игры.
Что пробовал:

1. Создал css класс hidden и добавил его в корневую панель.

CSS:
.hidden{
    visibility: collapse;
}
.visible{
    visibility: visible;
}

2. В скрипте всплывающего окна добавлял строчку в начале файла:

JavaScript:
$.GetContextPanel().AddClass("hidden");
//or
$.GetContextPanel().style.visibility = "collapse";
 
Последнее редактирование:

Bacchus

Пользователь
25 Ноя 2021
17
1
Проект
Gods&Avatars
Ура, 3 дня мучался и нашел наконец-то решение.

1. Создаем следующие классы css для всплывающего окна:

Код:
.hide {
    transition-property: opacity,transform;
    transition-duration: 0.5s;
    width: 100%;
    opacity: 0;
}

.show {
    transition-property: opacity,transform;
    transition-duration: 0.5s;
    opacity: 1;
}

2. В коневую панель всплывающего окна сразу добавляем класс hide:

HTML:
    <Panel class="stat-tooltip-root hide" hittest="false">
        <!-- ====================== -->
    </Panel>

3. Добавляем одинаковый обработчик на mouseover и mouseout, ну или можно на кнопку onctivate повесить такой же обработчик:


JavaScript:
var dotaH = $.GetContextPanel().GetParent().GetParent().GetParent().GetParent().GetParent().GetParent()

function OnMouseOver()
{
    dotaH.FindChildrenWithClassTraverse("stat-tooltip-root")[0].ToggleClass("show");
}

function OnMouseOut()
{
    dotaH.FindChildrenWithClassTraverse("stat-tooltip-root")[0].ToggleClass("show");
}
 
Реклама: