微信小程序实现侧边栏二级联动

 更新时间:2022年07月17日 08:59:00   作者:今天星期八  
这篇文章主要为大家详细介绍了微信小程序实现侧边栏二级联动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序实现侧边栏二级联动的具体代码,供大家参考,具体内容如下

实现效果如下

实现步骤

样式布局(.wxml文件)

<scroll-view scroll-y="{{true}}" 
              style="height:{{height}}px;" 
              class="nav-right-menu">
      <!-- 一级菜单 -->
  <view class="nav-left-menu-list" 
        wx:for="{{Menu}}" 
        wx:for-index="idMenu" 
        wx:key="id">
    <view data-index="{{idMenu}}" 
          class="nav-left-menu-text" 
          bindtap="showmenu2" 
          data-len="{{item.childLen}}">
      <text>{{item.txt}}</text>
    </view>
    <!-- 二级菜单 -->
    <view class="nav-left-secondmenu" 
          style="{{menuindex == idMenu ? menustyle : field}}">
      <view class='nav-left-secondmenu-list' 
            wx:for="{{item.twoMenu}}" 
            wx:for-item="twoMenu" 
            wx:key="id" 
            bindtap="dosub" 
            data-url="{{twoMenu.menupath}}">
        <text class='nav-left-Secondmenu-text'>{{twoMenu.name}}</text>
      </view>
    </view>
  </view>
</scroll-view>

js文件

// pages/home/index.js
var app = getApp();
var systeminfo = null;
var currentMenuIndex = -1;
Page({
  /**
   * 页面的初始数据
   */
  data: {
    height: 0,
    Menu:[]
  },
  showmenu2: function (event) {//显示2级菜单
    var currentindex = event.currentTarget.dataset.index;
    var len = event.currentTarget.dataset.len;
    if (currentindex == currentMenuIndex) {
      currentMenuIndex = -1;
      len = 0;
    }
    else {
      currentMenuIndex = currentindex;
      len = len * 40;
    }
    this.setData({
      menuindex: currentMenuIndex,
      menustyle: "height:" + len + "px;transition:height 0.24s"
    })
  },
  showmenu: function (event) {//显示一级菜单
    this.setData({
      showmask: true,
      toolclass: "showmenu",
      isscroll: false
    })
  },
  hidemenu: function () {
    this.setData({
      showmask: false,
      toolclass: "hidemenu",
      isscroll: true
    })
  },
  dosub: function (e) {
    var path = e.currentTarget.dataset.url;
    var obj = this;
    wx.navigateTo({
      url: path,
      success: function (e) {
        obj.setData({
          isscroll: true,
          showmask: false,
          toolclass: "hidemenu"
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this;
    var menujson = require("../../utils/side.js");
    let side = menujson.getside();
    console.log(side)
    that.setData({
      Menu: side
    })
  }
})

数据文件(side.js)

var side = [
  {
    "txt": "女装",
    "id": "1",
    "childLen": 3,
    "twoMenu": [
      {
        "id": "3",
        "name": "连衣裙",
        "menupath": ""
      },
      {
        "id": "4",
        "name": "雪纺衬衣/T恤",
        "menupath": ""
      },
      {
        "id": "5",
        "name": "套装",
        "menupath": ""
      }
    ]
  },
  {
    "txt": "男装",
    "id": "2",
    "childLen": 4,
    "twoMenu": [
      {
        "id": "6",
        "name": "衬衣",
        "menupath": ""
      },
      {
        "id": "7",
        "name": "T恤",
        "menupath": ""
      }
    ]
  }
]
const getside = () => {
  return side;
}
module.exports = {
  getside: getside
}

最后页面显示出来了,也可以将side文件写入data里面,此处只是将文件写入外部,进行模块的导入,两种方法都可以。

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

相关文章

  • JavaScript跳出循环的常用方法详解

    JavaScript跳出循环的常用方法详解

    这篇文章主要介绍了JavaScript中常用的遍历数组的方式以及如何提前退出循环,常用退出循环的方式包括break、continue、return和throw,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • js 数据存储和DOM编程

    js 数据存储和DOM编程

    本文主要介绍了js数据存储和DOM编程的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • javascript中返回顶部按钮的实现

    javascript中返回顶部按钮的实现

    这篇文章主要介绍了使用javascript实现博客园页面右下角返回顶部按钮的思路及源码,非常不错,这里推荐给小伙伴们
    2015-05-05
  • 深入了解JavaScript阻塞渲染

    深入了解JavaScript阻塞渲染

    阻塞渲染就是在页⾯中我们通常会引⽤外部⽂件,⽽浏览器在解析HTML页⾯是从上到下依次解析、渲染,如果<head>中引⽤了⼀个a.js⽂件,⽽这个⽂件很⼤或者有问题,需要2秒加载,那么浏览器会停⽌渲染页⾯,2秒后加载完成才会继续渲染,这个就是阻塞
    2022-06-06
  • Bootstrap Fileinput 4.4.7文件上传实例详解

    Bootstrap Fileinput 4.4.7文件上传实例详解

    这篇文章主要为大家详细介绍了Bootstrap Fileinput 4.4.7文件上传实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • js操作textarea方法集合封装(兼容IE,firefox)

    js操作textarea方法集合封装(兼容IE,firefox)

    在DOM里面操作textarea里面的字符,是比较麻烦的。于是我有这个封装分享给大家,测试过IE6,8, firefox ,chrome, opera , safari。兼容没问题。
    2011-02-02
  • three.js中3D视野的缩放实现代码

    three.js中3D视野的缩放实现代码

    这篇文章主要为大家详细介绍了three.js中3D视野的缩放实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 前端开发基础javaScript的六大作用

    前端开发基础javaScript的六大作用

    这篇文章主要介绍了前端开发基础javaScript的六大作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 浅谈JavaScript正则表达式分组匹配

    浅谈JavaScript正则表达式分组匹配

    一个正则表达式要如何书写才能同时匹配这两个数字呢?简单的字符表达式当然无法完成了,这个时候我们就可以定义一个字符集合(字符类)来进行匹配。这就是分组匹配了
    2015-04-04
  • JavaScript 作用域scope简单汇总

    JavaScript 作用域scope简单汇总

    这篇文章主要介绍了JavaScript 作用域scope简单汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10

最新评论