【菜狗学前端】uniapp(vue3|微信小程序)实现外卖点餐的左右联动功能

记录,避免之后忘记......

一、目的:实现左右联动

  1. 右->左 滚动(上拉/下拉)右侧,左侧对应品类选中
  2. 左->右 点击左侧品类,右侧显示对应品类

二、实现右->左 滚动(上拉/下拉)右侧,左侧对应品类选中

1.在data()中初始化需要用到的数据

须知:左侧哪个品类选中是根据trigger==index比较得出的

2.在onLoad()中调用getheight()获取右侧各品类高度,给this.heightset数组赋值

javascript 复制代码
// 回调函数,在数据发生改变时,在渲染dom之后,回制动执行回调函数

// 获取不同分类的高度

this.$nextTick(()=>{

this.getheight()

})

getheight()函数:

javascript 复制代码
// 获取右侧各分类高度

getheight(){

const query=wx.createSelectorQuery()

query.selectAll('.rig-height').boundingClientRect()

query.exec(res=>{

let height=0

res[0].forEach(item=>{

height = height+item.height

this.heightset.push(height)

})

console.log(this.heightset);

})

}

打印结果:

3.给右侧<scroll-view>组件绑定滚动函数@scroll="scrollRight",根据实际滚动高度与当前品类高度比较结果改变trigger进而改变左侧选中品类。

javascript 复制代码
// 右侧滚动触发

scrollRight(e){

// console.log(e.detail.scrollTop)//获取当前滚动实际高度

if(e.detail.scrollTop>=this.heightset[this.trigger]){//上拉到下一个品类

this.trigger++

}else{

if(e.detail.scrollTop<this.heightset[this.trigger-1]){//下拉到上一个品类

this.trigger--

}

}

}

三、实现左->右 点击左侧品类,右侧显示对应品类

1.使用scroll-view组件的scroll-into-view属性实现

2.给左侧各品类绑定点击函数,改变this.trigger和this.scroll_into

相关推荐
星恒随风9 分钟前
四天学完前端基础三件套(JavaScript篇)
开发语言·前端·javascript·笔记
guslegend18 分钟前
第9节:前端工程与一键启动
前端·大模型·状态模式·ai编程
杜子不疼.35 分钟前
【 C++ AI 大模型接入 SDK】 - 日志模块
开发语言·javascript·c++
南囝coding40 分钟前
Anthropic 内部数百个 Claude Code Skills,他们总结的这套方法值得看
前端·后端
Dxy12393102161 小时前
如何使用jQuery获取一类元素并遍历它们
前端·javascript·jquery
csdn小瓯1 小时前
AI质量评估体系:LLM-as-a-Judge实现与自动化测试实战
前端·网络·人工智能
jiayong232 小时前
第 43 课:任务详情抽屉里的批量处理闭环与删除联动
java·开发语言·前端
likerhood2 小时前
Java 访问修饰符:public、protected、private讲解
java·开发语言·javascript
刀法如飞2 小时前
JavaScript 数组去重的 20 种实现方式,学会用不同思路解决问题
前端·javascript·算法
小江的记录本2 小时前
【AI大模型选型指南】《2026年5月(最新版)国内外主流AI大模型选型指南》(个人版)
前端·人工智能·后端·ai·aigc·ai编程·ai写作