diff --git a/src/components/viewPost/vp-overlay-collection.vue b/src/components/viewPost/vp-overlay-collection.vue index cb85b3ab..bf8858b7 100644 --- a/src/components/viewPost/vp-overlay-collection.vue +++ b/src/components/viewPost/vp-overlay-collection.vue @@ -76,11 +76,11 @@ watch( async () => { if (visible.value && posts.value.length > 0) { await nextTick(); - if (postListEl.value === null || props.collection.total < 5) return; - let topNum: number; - if (props.collection.total - props.collection.cur < 3) topNum = props.collection.total; - else topNum = props.collection.cur - 3; - postListEl.value.scrollTo({ top: topNum * 87, behavior: "smooth" }); + if (postListEl.value === null) return; + const selectedEl = document.querySelector(".tpoc-item.selected"); + if (selectedEl === null) return; + const scrollHeight = selectedEl.offsetTop - postListEl.value.offsetTop; + postListEl.value.scrollTo({ top: scrollHeight, behavior: "smooth" }); } }, );