diff --git a/src/views/layout/components/TagsView/ScrollPane.vue b/src/views/layout/components/TagsView/ScrollPane.vue index b9d490dc..820a536e 100644 --- a/src/views/layout/components/TagsView/ScrollPane.vue +++ b/src/views/layout/components/TagsView/ScrollPane.vue @@ -55,6 +55,7 @@ export default { // the tag's offsetLeft before of prevTag const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing + if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) { $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) { diff --git a/src/views/layout/components/TagsView/index.vue b/src/views/layout/components/TagsView/index.vue index 4cd1b780..53d592bc 100644 --- a/src/views/layout/components/TagsView/index.vue +++ b/src/views/layout/components/TagsView/index.vue @@ -169,11 +169,13 @@ export default { const offsetWidth = this.$el.offsetWidth // container width const maxLeft = offsetWidth - menuMinWidth // left boundary const left = e.clientX - offsetLeft + 15 // 15: margin right + if (left > maxLeft) { this.left = maxLeft } else { this.left = left } + this.top = e.clientY this.visible = true this.selectedTag = tag