forked from UnidentifiedRaccoon/shri2022-performance
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscripts.js
More file actions
1 lines (1 loc) · 1.75 KB
/
scripts.js
File metadata and controls
1 lines (1 loc) · 1.75 KB
1
(()=>{function t(e,t,n){Array.from(e).forEach(e=>{e.addEventListener(t,n)})}function e(_){let c=_.querySelector(".section__tab_active").dataset.id;var e=_.querySelectorAll(".section__tab");const n=Array.from(e).map(e=>e.dataset.id),d=_.querySelector(".section__select");function a(e){const t=_.querySelector(`.section__tab[data-id=${e}]`),n=_.querySelector(`.section__panel[data-id=${e}]`),a=_.querySelector(".section__tab_active"),i=_.querySelector(".section__panel:not(.section__panel_hidden)");c=e,a.classList.remove("section__tab_active"),a.setAttribute("aria-selected","false"),a.removeAttribute("tabindex"),t.classList.add("section__tab_active"),t.setAttribute("aria-selected","true"),t.setAttribute("tabindex","0"),t.focus({t:!0}),i.classList.add("section__panel_hidden"),i.setAttribute("aria-hidden","true"),n.classList.remove("section__panel_hidden"),n.setAttribute("aria-hidden","false"),d.value=e}d.addEventListener("input",()=>{a(d.value)}),t(e,"click",e=>{a(e.target.dataset.id)}),t(e,"keydown",t=>{if(!(t.ctrlKey||t.metaKey||t.shiftKey||t.altKey)){let e=n.indexOf(c);if(37===t.which)--e;else if(39===t.which)++e;else if(36===t.which)e=0;else{if(35!==t.which)return;e=n.length-1}e>=n.length?e=0:e<0&&(e=n.length-1),a(n[e]),t.preventDefault()}})}function n(e){let t=!1;const n=document.querySelector(".header__links");e.addEventListener("click",()=>{t=!t,e.setAttribute("aria-expanded",t?"true":"false"),e.querySelector(".header__menu-text").textContent=t?"Закрыть меню":"Открыть меню",n.classList.toggle("header__links_opened",t),n.classList.add("header__links-toggled")})}document.addEventListener("DOMContentLoaded",()=>{Array.from(document.querySelectorAll(".main__devices")).forEach(e),Array.from(document.querySelectorAll(".header__menu")).forEach(n)})})();