vue项目中使用better-scroll来实现滚动的例子,2024年最新头条技术面试总共几轮

本文介绍了如何在Vue项目中使用BScroll库管理滚动效果,实现右侧列表根据顶部导航的点击平滑滚动到相应位置,并展示相关的食物组件。
摘要由CSDN通过智能技术生成

}

},

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

}

}

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值