Слушатель событий, документированный в документации scrollspy , дает вам id
текущего активного элемента. Вы можете использовать его для отображения того, что вы хотите.
Я выставил здесь базовый c пример: https://codesandbox.io/s/competent-cherry-o4o6h?file= / src / App. vue
Это базовый c, потому что он запрашивает $el
чтобы найти активный элемент и получить его внутри HTML. Вместо этого в реальном приложении вы могли бы напрямую ссылаться на объект в навигации, который вы использовали для визуализации навигации в первую очередь (и, следовательно, избегать запросов к DOM).
Для создания этого примера я использовал только код из документации я добавил вычисляемое свойство (getSectionTitle
) и одну необязательную функцию: я заметил, что при прокрутке вверх не происходит никакого события, и я подумал, что было бы хорошо, если бы я очистил выбранный раздел (так же, как scrollspy больше не выбирает любой элемент). Поэтому я добавил scrollListener
в mounted
, удаленный в beforeDestroy
, который, когда #nav-scorller
прокручивается до вершины, сбрасывает section
в ''
.
В остальном это довольно просто c.
Опять же, этот дополнительный слушатель на самом деле не нужен. Я просто подумал, что было бы хорошо показать, как это можно сделать, и служить примером для тех, кому это может понадобиться в будущем.