vue项目中使用better-scroll来实现滚动的例子,程序员深度学习
this.$store.dispatch(‘getShopGoods’, () => {// 数据更新后执行。this.$nextTick(() => { // 列表数据更新显示后执行。// scrollY>=当前top && scrollY
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文
},
mounted() {
this.$store.dispatch(‘getShopGoods’, () => {// 数据更新后执行
this.$nextTick(() => { // 列表数据更新显示后执行
this._initScroll()
this._initTops()
})
})
},
computed: {
…mapState([‘goods’]),
// 计算得到当前分类的下标
currentIndex() {// 初始和相关数据发生了变化
// 得到条件数据
const {scrollY, tops} = this
// 根据条件计算产生一个结果
const index = tops.findIndex((top, index) => {
// scrollY>=当前top && scrollY<下一个top
return scrollY >= top && scrollY < tops[index + 1]
})
// 返回结果
return index
}
},
methods: {
// 初始化滚动
_initScroll() {
// 列表显示之后创建
new BScroll(‘.menu-wrapper’, {
click: true
})
this.foodsScroll = new BScroll(‘.foods-wrapper’, {
probeType: 2, // 因为惯性滑动不会触发
click: true
})
// 给右侧列表绑定scroll监听
this.foodsScroll.on(‘scroll’, ({x, y}) => {
console.log(x, y)
this.scrollY = Math.abs(y)
})
// 给右侧列表绑定scroll结束的监听
this.foodsScroll.on(‘scrollEnd’, ({x, y}) => {
console.log(‘scrollEnd’, x, y)
this.scrollY = Math.abs(y)
})
},
// 初始化tops
_initTops() {
// 1. 初始化tops
const tops = []
let top = 0
tops.push(top)
// 2. 收集
// 找到所有分类的li
const lis = this.$refs.foodsUl.getElementsByClassName(‘food-list-hook’)
Array.prototype.slice.call(lis).forEach(li => {
top += li.clientHeight
tops.push(top)
})
// 3. 更新数据
this.tops = tops
console.log(tops)
},
clickMenuItem(index) {
// console.log(index)
// 使用右侧列表滑动到对应的位置
// 得到目标位置的scrollY
const scrollY = this.tops[index]
// 立即更新scrollY(让点击的分类项成为当前分类)
this.scrollY = scrollY
// 平滑滑动右侧列表
this.foodsScroll.scrollTo(0, -scrollY, 300)
},
// 显示点击的food
showFood (food) {
// 设置food
this.food = food
// 显示food组件 (在父组件中调用子组件对象的方法)
this.$refs.food.toggleShow()
}
},
components: {
CartControl,
Food,
ShopCart
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)