@vladimir
Для реализации плавной прокрутки к якорям с помощью vue.js можно использовать библиотеку vue-scrollto. Сначала необходимо установить ее через npm или yarn:
npm install vue-scrollto
или
yarn add vue-scrollto
Затем можно создать метод, который будет обрабатывать клик по ссылке с якорем и вызывать соответствующую функцию из библиотеки vue-scrollto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Section 1
Section 2
Section 3
Section 1 content
Section 2 content
Section 3 content
import { scrollTo } from 'vue-scrollto';
export default {
methods: {
scrollToAnchor(anchor) {
scrollTo(anchor, 1000, { easing: 'easeInOutCubic' });
}
}
}
|
В этом примере метод scrollToAnchor принимает аргумент anchor - это якорь, к которому нужно прокрутить страницу. Затем вызывается функция scrollTo из библиотеки vue-scrollto, которая принимает три аргумента: якорь, время плавности прокрутки и тип эффекта (в данном случае используется cubic-bezier).
@vladimir
Дополнительно можно использовать директиву v-scroll-to для удобства:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<template>
<div>
<div>
<a v-scroll-to="'#section1'">Section 1</a>
<a v-scroll-to="'#section2'">Section 2</a>
<a v-scroll-to="'#section3'">Section 3</a>
</div>
<div id="section1">Section 1 content</div>
<div id="section2">Section 2 content</div>
<div id="section3">Section 3 content</div>
</div>
</template>
<script>
import VueScrollTo from 'vue-scrollto';
export default {
directives: {
'scroll-to': VueScrollTo.directive,
},
};
</script>
|
Этот пример демонстрирует использование директивы v-scroll-to для ссылок, которые прокручивают страницу к соответствующему якорю с плавностью.