微信小程序自定义导航隐藏和显示功能

发布时间 - 2026-01-11 01:51:59    点击率:

微信小程序中不能直接操作window对象,document文档,跟html的树结构不相同。

实现类似导航的隐藏显示,如图效果:

点击网络显示或隐藏网络中包含的内容。其他类似。

如果是jquery很方便实现,能直接操作document。在微信小程序中实现思路是:在逻辑层定义变量,通过setData赋值。

方法一:通过变量直接赋值,给每一个要控制显示的view定义变量

.wxml 代码:

<!--index.wxml-->
<view class="navView" bindtap="tigger" data-num="1">视图容器</view>
<view class="classname" hidden="{{view1}}">
 <button bindtap="opentype" data-type="view">view</button>
 <button bindtap="opentype" data-type="movable">movable</button>
</view>
<view class="navView" bindtap="tigger" data-num="2">基础内容</view>
<view class="classname" hidden="{{view2}}">
<button bindtap="opentype" data-type="icon">icon</button>
<button bindtap="opentype" data-type="text">text</button>
<button bindtap="opentype" data-type="progress">progress</button>
</view>
<view class="navView" bindtap="tigger" data-num="3">表单组件</view>
<view class="classname" hidden="{{view3}}">
<button bindtap="opentype" data-type="button">button</button>
<button bindtap="opentype" data-type="checkbox">checkbox</button>
<button bindtap="opentype" data-type="form">form</button>
<button bindtap="opentype" data-type="input">input</button>
<button bindtap="opentype" data-type="label">label</button>
<button bindtap="opentype" data-type="picker">picker</button>
<button bindtap="opentype" data-type="textarea">textarea</button>
</view>

.js对应代码:

data: {
  view1: true,
  view2: true,
  view3: true
 },
 opentype: function (e) {
  var url = e.currentTarget.dataset.type
  url = url + '/' + url
  wx.navigateTo({
   url: url
  })
 },
 tigger: function (e) {
  var num = e.currentTarget.dataset.num
  if (num == 1) {
   this.setData({
    view1: !this.data.view1
   })
  } else if (num == 2) {
   this.setData({
    view2: !this.data.view2
   })
  } else if (num == 3) {
   this.setData({
    view3: !this.data.view3
   })
  }
}

通过data-num="1" 这中传值方式,设置对应的view1的值。

这种方法能够实现效果,但是在添加了新的view之后需要修改js代码,所以不是最优的方法。

方法二:

.wxml 代码:

<!--index.wxml-->
<view class="navView" bindtap="tigger" data-num="0">网络</view>
<view class="classname" hidden="{{showArr[0]}}">
 <button bindtap="opentype" data-url="network/request/request">request</button>
</view>
<view class="navView" bindtap="tigger" data-num="1">上传、下载</view>
<view class="classname" hidden="{{showArr[1]}}">
 <button bindtap="opentype" data-url="uploadFile">uploadFile</button>
 <button bindtap="opentype" data-url="downloadFile">downloadFile</button>
</view>
<view class="navView" bindtap="tigger" data-num="2">WebSocket</view>
<view class="classname" hidden="{{showArr[2]}}">
 <button bindtap="opentype" data-url="connectSocket">connectSocket</button>
 <button bindtap="opentype" data-url="downloadFile">OnSocketOpen</button>
</view>
<view class="navView" bindtap="tigger" data-num="3">媒体</view>
<view class="classname" hidden="{{showArr[3]}}">
 <button bindtap="opentype" data-url="uploadFile">图片</button>
 <button bindtap="opentype" data-url="downloadFile">录音</button>
</view>

.js对应代码:

// index.js
var statusArrs = [false]
Page({
 /**
  * 页面的初始数据
  */
 data: {
  showArr: statusArrs
 },
 opentype: function (e) {
  var url = e.currentTarget.dataset.url
  url = '../' + url
  wx.navigateTo({
   url: url
  })
 },
 //显示隐藏
 tigger: function (e) {
  var that = this;
  var num = e.currentTarget.dataset.num
  statusArrs[num] = !statusArrs[num]
  that.setData({
   showArr: statusArrs
  })
 }
})

方法二这种方式就简单实现了不修改js代码,添加了新的view也能控制隐藏显示。

以上所述是小编给大家介绍的微信小程序自定义导航隐藏和显示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# 微信小程序自定义导航  # 微信小程序隐藏导航  # 微信小程序控制view隐藏显示的5种方法汇总  # uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果  # 微信小程序之滑动页面隐藏和显示组件功能的实现代码  # 微信小程序实现动态显示和隐藏某个控件功能示例  # 微信小程序之多列表的显示和隐藏功能【附源码】  # 微信小程序实践之动态控制组件的显示/隐藏功能  # 微信小程序 实现动态显示和隐藏某个控件  # 微信小程序中视频的显示与隐藏功能  # 小编  # 在此  # 也能  # 给大家  # 自定义  # 如图  # 表单  # 很方便  # 所述  # 最优  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # 实现了  # 中传  # 上传  # 文档  # 但是在  # 这种方法 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: C++时间戳转换成日期时间的步骤和示例代码  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Swift开发中switch语句值绑定模式  油猴 教程,油猴搜脚本为什么会网页无法显示?  EditPlus中的正则表达式 实战(2)  历史网站制作软件,华为如何找回被删除的网站?  HTML 中动态设置元素 name 属性的正确语法详解  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  香港服务器网站推广:SEO优化与外贸独立站搭建策略  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  如何在橙子建站中快速调整背景颜色?  Laravel如何为API生成Swagger或OpenAPI文档  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  Android自定义listview布局实现上拉加载下拉刷新功能  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  如何生成腾讯云建站专用兑换码?  Laravel中的withCount方法怎么高效统计关联模型数量  Laravel如何创建自定义中间件?(Middleware代码示例)  如何在IIS7上新建站点并设置安全权限?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  进行网站优化必须要坚持的四大原则  浅谈redis在项目中的应用  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  网易LOFTER官网链接 老福特网页版登录地址  佛山网站制作系统,佛山企业变更地址网上办理步骤?  西安专业网站制作公司有哪些,陕西省建行官方网站?  *服务器网站为何频现安全漏洞?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Android实现代码画虚线边框背景效果  大连 网站制作,大连天途有线官网?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  长沙企业网站制作哪家好,长沙水业集团官方网站?  微信小程序 require机制详解及实例代码  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】