diff --git a/.dist/contextmenu.js b/.dist/contextmenu.js index 4310b4e..17afb51 100644 --- a/.dist/contextmenu.js +++ b/.dist/contextmenu.js @@ -47,6 +47,7 @@ class Contextmenu { div.style.top = y + 'px'; div.style.left = x + 'px'; document.body.appendChild(div); + Contextmenu.keepOnScreen(div); console.log(div); Contextmenu.currentmenu = div; return this.div; @@ -61,6 +62,18 @@ class Contextmenu { return func; } static keepOnScreen(obj) { + const html = document.documentElement.getBoundingClientRect(); + const docheight = html.height; + const docwidth = html.width; + const box = obj.getBoundingClientRect(); + console.log(box, docheight, docwidth); + if (box.right > docwidth) { + console.log("test"); + obj.style.left = docwidth - box.width + 'px'; + } + if (box.bottom > docheight) { + obj.style.top = docheight - box.height + 'px'; + } } } Contextmenu.setup(); diff --git a/.dist/user.js b/.dist/user.js index 71e78bd..5830f56 100644 --- a/.dist/user.js +++ b/.dist/user.js @@ -126,6 +126,7 @@ class User { if (x !== -1) { Contextmenu.currentmenu = div; document.body.appendChild(div); + Contextmenu.keepOnScreen(div); } return div; } diff --git a/webpage/contextmenu.ts b/webpage/contextmenu.ts index e4ece80..aaf7a3f 100644 --- a/webpage/contextmenu.ts +++ b/webpage/contextmenu.ts @@ -45,6 +45,7 @@ class Contextmenu{ div.style.top = y+'px'; div.style.left = x+'px'; document.body.appendChild(div); + Contextmenu.keepOnScreen(div); console.log(div) Contextmenu.currentmenu=div; return this.div; @@ -59,7 +60,18 @@ class Contextmenu{ return func; } static keepOnScreen(obj:HTMLElement){ - + const html = document.documentElement.getBoundingClientRect(); + const docheight=html.height + const docwidth=html.width + const box=obj.getBoundingClientRect(); + console.log(box,docheight,docwidth); + if(box.right>docwidth){ + console.log("test") + obj.style.left = docwidth-box.width+'px'; + } + if(box.bottom>docheight){ + obj.style.top = docheight-box.height+'px'; + } } } Contextmenu.setup(); diff --git a/webpage/user.ts b/webpage/user.ts index 17ac002..530b9c7 100644 --- a/webpage/user.ts +++ b/webpage/user.ts @@ -125,9 +125,11 @@ class User{ userbody.appendChild(biohtml); } console.log(div); + if(x!==-1){ Contextmenu.currentmenu=div; document.body.appendChild(div) + Contextmenu.keepOnScreen(div); } return div; }