非a标签的锚点定位

  1. 锚点设置id
  2. 点击元素添加点击事件,使用scrollIntoView()方法

el.scrollIntoView()将元素对用户可见(滚动到可视区),参数alignToTop或scrollIntoViewOptions 这里使用第二个,其中包括三个属性:
image.png

  1. <template>
  2. <div>
  3. <!-- 点击元素 -->
  4. <div @click="changePoint(index)" v-for="(item, index) in list" :key="index">
  5. 点击{{ index }}
  6. </div>
  7. <!-- 锚点:设置id -->
  8. <span :id="`point${index}`" v-for="(item, index) in list" :key="index">item</span>
  9. </div>
  10. </template>
  11. <script>
  12. export default {
  13. data() {
  14. return {
  15. list: [1, 2, 3]
  16. };
  17. },
  18. methods: {
  19. changePoint(index) {
  20. const el = document.querySelector(`#point${index}`);
  21. el.scrollIntoView({
  22. block: 'center',
  23. behavior: 'smooth'
  24. });
  25. }
  26. }
  27. };
  28. </script>
  29. <style></style>