-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathwindow-engine.min.js
2 lines (2 loc) · 2.51 KB
/
window-engine.min.js
1
2
/* Window Engine - MIT License - Copyright (c) 2019 Gauthier Staehler */
const metaTag=document.createElement("meta");metaTag.name="viewport",metaTag.content="user-scalable=0",document.getElementsByTagName("head")[0].appendChild(metaTag);const lastWindow=document.getElementsByClassName("windowGroup")[0].lastElementChild.id.substring(6),active=document.getElementsByClassName("window");for(let e=1;e<=lastWindow;e++)createWindow(e);function createWindow(e){let t=document.getElementById("window"+e);t.firstElementChild.id="window"+e+"header";let n=document.createElement("b");n.id="closeButton"+e,n.innerHTML="×",document.getElementById("window"+e+"header").appendChild(n),document.getElementById("closeButton"+e).onclick=function(){fadeOut(t)},document.getElementById("button"+e).onclick=function(){"initial"===t.style.display?activeWindow(t):(t.style="position: absolute;",t.style="top: 80px;",fadeIn(t))},dragElement(t)}function dragElement(e){var t=0,n=0,o=0,c=0;if("ontouchstart"in document.documentElement)var i=0,l=0,d=0,a=0;function u(t){if(!1 in document.documentElement&&t.preventDefault(),o=t.clientX,c=t.clientY,"ontouchstart"in document.documentElement)try{d=t.touches[0].clientX,a=t.touches[0].clientY}catch(e){}document.onmouseup=m,document.onmousemove=s,document.ontouchend=m,document.ontouchmove=s,activeWindow(document.getElementById(e.id))}function s(u){u.preventDefault(),"ontouchstart"in document.documentElement?(i=d-u.touches[0].clientX,l=a-u.touches[0].clientY,d=u.touches[0].clientX,a=u.touches[0].clientY,e.style.top=e.offsetTop-l+"px",e.style.left=e.offsetLeft-i+"px"):(t=o-u.clientX,n=c-u.clientY,o=u.clientX,c=u.clientY,e.style.top=e.offsetTop-n+"px",e.style.left=e.offsetLeft-t+"px")}function m(){document.onmouseup=null,document.onmousemove=null,document.ontouchend=null,document.ontouchmove=null}document.getElementById(e.id+"header")&&(document.getElementById(e.id+"header").onmousedown=u,document.getElementById(e.id+"header").ontouchstart=u)}function fadeIn(e){if(e.style.opacity=0,e.style.display="initial",e.classList.contains("fade"))var t=0,n=setInterval(function(){(t+=30/70)>=1&&(clearInterval(n),t=.9),e.style.opacity=t,activeWindow(e)},50);else e.style.opacity="0.9",activeWindow(e)}function fadeOut(e){if(e.classList.contains("fade"))var t=1,n=setInterval(function(){(t-=30/70)<=0&&(clearInterval(n),t=0,e.style.display="none"),e.style.opacity=t},50);else e.style.display="none",activeWindow(e)}function activeWindow(e){for(let t=active.length-1;t>-1;t--)active[t].classList.remove("windowActive"),e.className+=" windowActive"}