微信小程序实现菜单左右联动


Posted in Javascript onMay 19, 2020

本文实例为大家分享了微信小程序实现菜单左右联动的具体代码,供大家参考,具体内容如下

今天记录一个个人写的二级联动示例。

下面是效果图:

微信小程序实现菜单左右联动

功能实现关键是使用控件scroll-view,下面直接上示例代码。

页面对应的js文件:

Page({
 data: {
 select_index:0,
 scroll_height:0,
 left: [{
 id: 1,
 title: '选项一'
 },
 {
 id: 2,
 title: '选项二'
 },
 {
 id: 3,
 title: '选项三'
 },
 {
 id: 4,
 title: '选项四'
 },
 {
 id: 5,
 title: '选项五'
 },
 {
 id: 6,
 title: '选项六'
 },
 {
 id: 7,
 title: '选项七'
 }
 ],
 right:[
 {
 id: 1,
 title: '选项一',
 content:[
  {
  title:"产品一"
  },
  {
  title: "产品二"
  },
  {
  title: "产品三"
  },
  {
  title: "产品四"
  },
 ]
 },
 {
 id: 2,
 title: '选项二',
 content: [
  {
  title: "产品一"
  },
  {
  title: "产品二"
  },
  {
  title: "产品三"
  },
  {
  title: "产品四"
  },
 ]
 },
 {
 id: 3,
 title: '选项三',
 content: [
  {
  title: "产品一"
  },
  {
  title: "产品二"
  },
  {
  title: "产品三"
  },
  {
  title: "产品四"
  },
 ]
 },
 {
 id: 4,
 title: '选项四',
 content: [
  {
  title: "产品一"
  },
  {
  title: "产品二"
  },
  {
  title: "产品三"
  },
  {
  title: "产品四"
  },
 ]
 },
 {
 id: 5,
 title: '选项五',
 content: [
  {
  title: "产品一"
  },
  {
  title: "产品二"
  },
  {
  title: "产品三"
  },
  {
  title: "产品四"
  },
 ]
 },
 {
 id: 6,
 title: '选项六',
 content: [
  {
  title: "产品一"
  },
  {
  title: "产品二"
  },
  {
  title: "产品三"
  },
  {
  title: "产品四"
  },
 ]
 },
 {
 id: 7,
 title: '选项七',
 content: [
  {
  title: "产品一"
  },
  {
  title: "产品二"
  },
  {
  title: "产品三"
  },
  {
  title: "产品四"
  },
 ]
 }
 ]
 },
 
 // 右边scroll-view滑动事件
 scroll:function(e){
 var h = e.detail.scrollTop
 var scroll_height = 0;
 var select_index;
 for (var i = 0; i < this.data.right.length; i++) {
 if (scroll_height >= h){
 select_index = i;
 break;
 }
 scroll_height += this.data.right[i].content.length * 64 + 48;
 }
 this.setData({
 select_index: i,
 });
 },
 
 //左边点击事件
 left_tap:function(e){
 var scroll_height = 0;
 for (var i = 0; i < e.target.dataset.index;i++){
 scroll_height += this.data.right[i].content.length * 64 + 48;
 }
 console.log(scroll_height)
 this.setData({
 scroll_height: scroll_height,
 select_index: e.target.dataset.index,
 });
 }
})

页面对应的wxml文件:

<view class='main'>
 
 <view class='left'>
 <scroll-view scroll-y="true" scroll-with-animation="true">
 <block wx:for="{{left}}" wx:for-index="index">
 <view class='{{select_index==index?"active":""}}' data-index="{{index}}" bindtap='left_tap'>{{item.title}}</view>
 </block>
 </scroll-view>
 </view>
 
 <view class='right'>
 <scroll-view scroll-y="true" scroll-top="{{scroll_height}}" bindscroll="scroll" scroll-with-animation="true">
 <block wx:for="{{right}}">
 <view class='block'>
  <view style='background: lightgrey;'>{{item.title}}</view>
  <view class='list'>
  <block wx:for="{{item.content}}">
  <view>{{item.title}}</view>
  </block>
  </view>
 </view>
 </block>
 
 </scroll-view>
 </view>
 
</view>

注:纯个人编写,用于记录

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript高级程序设计 XML、Ajax 学习笔记
Sep 10 Javascript
JQuery防止退格键网页后退的实现代码
Mar 23 Javascript
把jquery 的dialog和ztree结合实现步骤
Aug 02 Javascript
jQuery中clearQueue()方法用法实例
Dec 29 Javascript
JavaScript日期时间与时间戳的转换函数分享
Jan 31 Javascript
JS动态修改iframe内嵌网页地址的方法
Apr 01 Javascript
javascript日期操作详解(脚本之家整理)
Sep 05 Javascript
Bootstrap Table使用整理(四)之工具栏
Jun 09 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
Nov 29 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
Apr 02 Javascript
微信小程序实现吸顶效果
Jan 08 Javascript
vue+vant 上传图片需要注意的地方
Jan 03 Vue.js
JS array数组检测方式解析
May 19 #Javascript
基于JS实现table导出Excel并保留样式
May 19 #Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
May 19 #Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 #jQuery
JS加载解析Markdown文档过程详解
May 19 #Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
May 19 #Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
May 19 #jQuery
You might like
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
nodejs中实现路由功能
2014/12/29 NodeJs
JS往数组中添加项性能分析
2015/02/25 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
微信小程序页面间传递数组对象方法解析
2019/11/06 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
python获取文件扩展名的方法
2015/07/06 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
Python通过len函数返回对象长度
2020/10/22 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
办公室年终个人自我评价
2013/10/28 职场文书
护理个人求职信范文
2014/01/08 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
横空出世观后感
2015/06/09 职场文书
蜗居观后感
2015/06/11 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python