From 22aa8b4a4a0ec8bf6c082e75858b2c2803b1904c Mon Sep 17 00:00:00 2001 From: RblSb Date: Mon, 2 Mar 2020 19:08:03 +0300 Subject: Basic dropdown menu --- src/client/Buttons.hx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/client') diff --git a/src/client/Buttons.hx b/src/client/Buttons.hx index d566d68..31f1e86 100644 --- a/src/client/Buttons.hx +++ b/src/client/Buttons.hx @@ -168,15 +168,27 @@ class Buttons { ge("#userlist").style.height = '${height}px'; } + static function onClick(el:Element, func:Any->Void):Void { + final isTouch = untyped __js__("'ontouchstart' in window"); + if (!isTouch) el.onclick = func; + else el.ontouchend = func; + } + static function initNavBar(main:Main):Void { + final toggleMenu = ge("#toggleMenu"); + final onclick = e -> { + ge("#nav-collapsible").classList.toggle("in"); + } + onClick(toggleMenu, onclick); + final classes:Array = cast document.querySelectorAll(".dropdown-toggle"); for (klass in classes) { klass.onclick = e -> { - klass.classList.toggle("focus"); + final isActive = klass.classList.toggle("focus"); hideMenus(); final menu = klass.parentElement.querySelector(".dropdown-menu"); - if (menu.style.display == "") menu.style.display = "block"; - else menu.style.display = ""; + if (isActive) menu.style.display = "block"; + else menu.style.display = "none"; } klass.onmouseover = klass.onclick; } @@ -206,7 +218,6 @@ class Buttons { updateSynchThresholdBtn(main); synchThresholdBtn.blur(); } - final text = synchThresholdBtn.innerText; final secs = main.synchThreshold; synchThresholdBtn.innerText += ': ${secs}s'; -- cgit v1.2.3