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


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 相关文章推荐
Ext JS 4实现带week(星期)的日期选择控件(实战一)
Aug 21 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
Feb 27 Javascript
Ajax清除浏览器js、css、图片缓存的方法
Aug 06 Javascript
微信开发 微信授权详解
Oct 21 Javascript
在JSP中如何实现MD5加密的方法
Nov 02 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
Sep 07 Javascript
JS数组求和的常用方法实例小结
Jan 07 Javascript
vue实现动态按钮功能
May 13 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
Aug 27 Javascript
Vuex中实现数据状态查询与更改
Nov 08 Javascript
vue中echarts引入中国地图的案例
Jul 28 Javascript
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
PHP新手上路(十四)
2006/10/09 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
python3 实现对图片进行局部切割的方法
2018/12/05 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
python中threading开启关闭线程操作
2020/05/02 Python
Python中的流程控制详解
2021/02/18 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
总务岗位职责
2013/11/19 职场文书
快餐公司创业计划书
2014/04/29 职场文书
平安工地建设方案
2014/05/06 职场文书
给学校的建议书范文
2014/05/15 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
六一儿童节主持开场白
2015/05/28 职场文书