Объединив атрибут href
для вкладок и наблюдателя пересечения , вы можете выполнить sh this.
Вот элементарное, но работающее перо: https://codepen.io/Qumez/pen/VwYEapg
По сути, мы делаем здесь привязку к каждому тегу и привязываем его к свойству данных. Затем у нас есть промежуток в нижней части страницы с наблюдателем пересечения, с использованием оболочки v-intersect
Vuetify:
<span v-intersect ="handleIntersect">Page will automatically scroll to tab-3 when this span is in view</span>
Эта оболочка пересечения вызывает пользовательский метод (в данном случае handleIntersect
), чтобы обновить вкладку:
handleIntersect(entries, observer) {
if(entries[0].isIntersecting) {
this.tab = "tab-3"
}
else {
this.tab = "tab-1"
}
}
Для вашего случая использования, возможно, каждый элемент, который будет изменять вкладку в зависимости от ее положения в области просмотра, должен будет вызывать данную функцию с аргументом для какую вкладку установить. Это не так уж далеко от того места, где сейчас находится это перо.
Примечание: Я никогда не использовал IntersectionObserver, и я не уверен, является ли isIntersecting
лучшим способом обнаружения существование элемента в окне просмотра, поэтому проведите собственное исследование и тестирование, прежде чем внедрять это в производственный код