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


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 的Document属性和方法集合
Jan 25 Javascript
鼠标滚轮改变图片大小的示例代码
Nov 20 Javascript
jQuery实现锚点scoll效果实例分析
Mar 10 Javascript
javascript将DOM节点添加到文档的方法实例分析
Aug 04 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
JavaScript 实现的checkbox经典实例分享
Oct 16 Javascript
requirejs按需加载angularjs文件实例
Jun 08 Javascript
微信小程序自定义导航隐藏和显示功能
Jun 13 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
layui实现checkbox的目录树tree的例子
Sep 12 Javascript
vue使用swiper.js重叠轮播组建样式
Nov 14 Javascript
vue 防止页面加载时看到花括号的解决操作
Nov 09 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 随机生成10位字符代码
2009/03/26 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
Java中final关键字详解
2015/08/10 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
拖拉表格的JS函数
2008/11/20 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
python中from module import * 的一个坑
2014/07/20 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
Python生成随机数组的方法小结
2017/04/15 Python
python函数中return后的语句一定不会执行吗?
2017/07/06 Python
使用Python读取大文件的方法
2018/02/11 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
带你认识Django
2019/01/15 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
类的返射机制中的包及核心类
2016/09/12 面试题
工程质量月活动方案
2014/02/19 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
订货会邀请函
2015/01/31 职场文书
幼儿教师个人总结
2015/02/05 职场文书
校长一岗双责责任书
2015/05/09 职场文书
寒假致家长的一封信
2015/10/10 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS