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


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应用:Iframe自适应其加载的内容高度
Apr 10 Javascript
用js判断浏览器是否是IE的比较好的办法
May 08 Javascript
比较简单的异步加载JS文件的代码
Jul 18 Javascript
学习ExtJS TextField常用方法
Oct 07 Javascript
理解Javascript_11_constructor实现原理
Oct 18 Javascript
Javascript模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
JQuery判断子iframe何时加载完成解决方案
Aug 20 Javascript
javascript中普通函数的使用介绍
Dec 19 Javascript
Vue学习笔记进阶篇之函数化组件解析
Jul 21 Javascript
微信小程序引入VANT组件的方法步骤
Sep 19 Javascript
通过实例解析json与jsonp原理及使用方法
Sep 27 Javascript
vue 把二维或多维数组转一维数组
Apr 24 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
提升PHP执行速度全攻略(上)
2006/10/09 PHP
实用函数8
2007/11/08 PHP
php 的反射详解及示例代码
2016/08/25 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
JavaScript入门学习书籍推荐
2008/06/12 Javascript
checkbox 多选框 联动实现代码
2008/10/22 Javascript
jQuery 操作XML入门
2008/12/25 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
JS遍历页面所有对象属性及实现方法
2016/08/01 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
JS实现简单拖拽效果
2017/06/21 Javascript
Vue Spa切换页面时更改标题的实例代码
2017/07/15 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
python抓取最新博客内容并生成Rss
2015/05/17 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
Python调用C/C++的方法解析
2020/08/05 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
硕士生工作推荐信
2014/03/07 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
2014年会计工作总结
2014/11/27 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB