コンテキストメニューの位置計算を改善

This commit is contained in:
syuilo 2020-10-25 11:01:03 +09:00
parent 4804bbb211
commit 4bfa29c0ab

View file

@ -35,8 +35,30 @@ export default defineComponent({
}, },
}, },
mounted() { mounted() {
this.$el.style.top = this.ev.pageY + 'px'; let left = this.ev.pageX + 1; // + 1
this.$el.style.left = this.ev.pageX + 'px'; let top = this.ev.pageY + 1; // + 1
const width = this.$el.offsetWidth;
const height = this.$el.offsetHeight;
if (left + width - window.pageXOffset > window.innerWidth) {
left = window.innerWidth - width + window.pageXOffset;
}
if (top + height - window.pageYOffset > window.innerHeight) {
top = window.innerHeight - height + window.pageYOffset;
}
if (top < 0) {
top = 0;
}
if (left < 0) {
left = 0;
}
this.$el.style.top = top + 'px';
this.$el.style.left = left + 'px';
for (const el of Array.from(document.querySelectorAll('body *'))) { for (const el of Array.from(document.querySelectorAll('body *'))) {
el.addEventListener('mousedown', this.onMousedown); el.addEventListener('mousedown', this.onMousedown);