posts - 59,comments - 0,views - 34635
  1. 可以通过vue 里面的refs 来获取滚动距离
    (1)注意点1. 在循环体外面的父级上面写ref属性。
    (2)注意点2 路由的路径发生改变的时候对scrollTop 的高度进行初始化,你可以根据自己的需求进行初始化之外的其他处理。
    (3)注意点3 ,写ref的标签的样式上面要有height 和overflow-y属性。
    如下图举例所示:

点击查看代码
<template>
  <div class="oil-coupons" ref="allScrollTop">
    <!--注意点1. 在循环体外面的父级上面写ref属性 -->
    <div v-for="item in dataList" :key="item.id">
      {{ item.name }}
    </div>
  </div>
</template>
<script>
export default {
  data () {
    return {
      dataList: [
        { id: 1, name: '张三' },
        { id: 2, name: '李四' }
      ]
    }
  },
  watch: {
    $route (to, from) {
      // 注意点2
      // 路由的路径发生改变的时候对scrollTop 的高度进行初始化,
      // 你可以根据自己的需求进行初始化之外的其他处理
      this.$refs.allScrollTop.scrollTop = 0
    }
  }
}
</script>
<style>
/* 注意点3 */
.oil-coupons {
  height: 100px; /* 这个属性要有的 */
  font-size: 14px;
  background: pink;
  overflow-y: auto; /* 这个属性要有的 */
}
</style>
  1. 可以使用监听滚动条的事件来获取滚动的距离
    (1)注意点1 在循环体外面的父级上面写ref属性。
    (2)注意点2,写ref的标签的样式上面要有height 和overflow-y 的属性。
    如下图举例:
点击查看代码
<template>
  <div class="oil-coupons" @scroll.passive="allScrollTop($event)">
    <!--注意点1. 在循环体外面的父级上面写ref属性 -->
    <div v-for="item in dataList" :key="item.id">
      {{ item.name }}
    </div>
  </div>
</template>
<script>
export default {
  data () {
    return {
      dataList: [
        { id: 1, name: '张三' },
        { id: 2, name: '李四' }
      ]
    }
  },
  methods: {
    allScrollTop (ev) {
      console.log('ev的target', ev.target)
      // 也可以查看其他的属性:scrollHeight,clientHeight等
      console.log('监听ev时时滚动的距离', ev.target.scrollTop)
    }
  }
}
</script>
<style>
/* 注意点2 */
.oil-coupons {
  height: 100px; /* 这个属性要有的 */
  font-size: 14px;
  background: pink;
  overflow-y: auto; /* 这个属性要有的 */
}
</style>
posted on   好久不见-库克  阅读(8387)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
< 2025年3月 >
23 24 25 26 27 28 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 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示