Весь контент, который я делаю, исходит от CMS в форме HTML, и я использую v-html привязку для его рендеринга.
function handleTocClick(elementId) {
isDropdownOpen.value = false;
const element = document.getElementById(elementId);
element.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });
}
Я попробовал разные параметры scollintoview, такие как Block: start или block: end .
Я также попытался удалить свой Scroll-margin-top , как я думал, что это может вызвать это расхождение, но нет, это что-то еще.function handleTocClick(elementId) {
isDropdownOpen.value = false;
nextTick(() => {
const element = document.getElementById(elementId);
element.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });
});
< /code>
} < /p>
Полный пример: < /p>
Table of content
- :class="[
'toc-list',
{
dropdown: isMobile,
open: isDropdownOpen && isMobile,
},
]"
> - {{ article.h2 }}
{{ section.h2 }}
function handleTocClick(elementId) {
const element = document.getElementById(elementId);
element.scrollIntoView({
behavior: 'smooth',
block: 'start',
inline: 'start',
});
isDropdownOpen.value = false;
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ered-twice