当前位置:首页 > uni-app

uniapp手风琴折叠

2026-02-06 15:39:47uni-app

uniapp手风琴折叠实现方法

在uniapp中实现手风琴折叠效果,可以通过结合<uni-collapse>组件或自定义组件的方式完成。以下是两种常见实现方案:

使用uni-collapse组件

uniapp官方提供了uni-collapse折叠面板组件,内置手风琴模式:

<template>
  <uni-collapse accordion>
    <uni-collapse-item title="标题1">
      <text>内容1</text>
    </uni-collapse-item>
    <uni-collapse-item title="标题2">
      <text>内容2</text>
    </uni-collapse-item>
  </uni-collapse>
</template>

<script>
import uniCollapse from '@/components/uni-collapse/uni-collapse.vue'
import uniCollapseItem from '@/components/uni-collapse/uni-collapse-item.vue'
export default {
  components: { uniCollapse, uniCollapseItem }
}
</script>

通过设置accordion属性开启手风琴模式,同一时间只会展开一个面板。

自定义实现方案

如需更灵活的定制,可通过数据驱动方式实现:

<template>
  <view class="accordion">
    <view 
      v-for="(item, index) in list" 
      :key="index"
      class="item"
      @click="toggle(index)"
    >
      <view class="header">{{ item.title }}</view>
      <view class="content" v-show="activeIndex === index">
        {{ item.content }}
      </view>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      activeIndex: null,
      list: [
        { title: '标题1', content: '内容1' },
        { title: '标题2', content: '内容2' }
      ]
    }
  },
  methods: {
    toggle(index) {
      this.activeIndex = this.activeIndex === index ? null : index
    }
  }
}
</script>

<style>
.accordion {
  border: 1px solid #eee;
}
.header {
  padding: 20rpx;
  background: #f5f5f5;
}
.content {
  padding: 20rpx;
  border-top: 1px solid #eee;
}
</style>

动画效果增强

为提升用户体验,可添加过渡动画:

uniapp手风琴折叠

.content {
  overflow: hidden;
  transition: all 0.3s ease;
}

注意事项

  1. 使用官方组件需确保已正确安装uni-collapse组件
  2. 自定义实现时注意控制v-showv-if的切换逻辑
  3. 手风琴模式的核心是保持同一时间只有一个面板展开
  4. 复杂场景可考虑使用uniapp插件市场的第三方手风琴组件

两种方案均可实现手风琴效果,官方组件更标准化,自定义方案灵活性更高。根据项目复杂度选择合适方案即可。

标签: 手风琴uniapp
分享给朋友:

相关文章

uniapp教程

uniapp教程

uniapp 基础介绍 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,学习成本低,适合快速构建多…

uniapp隐藏滚动条

uniapp隐藏滚动条

在UniApp中隐藏滚动条可以通过以下几种方法实现,具体根据使用场景选择: 全局样式设置(APP/H5) 通过修改全局CSS样式隐藏滚动条,适用于所有页面: ::-webkit-scrollbar…

uniapp打包

uniapp打包

uniapp打包步骤 H5平台打包 在项目根目录运行以下命令生成H5资源文件: npm run build:h5 打包完成后,文件默认输出到/dist/build/h5目录,可直接部署到Web服务器…

uniapp设置背景

uniapp设置背景

设置全局背景样式 在App.vue文件中添加全局样式,使用page选择器设置页面背景。这种方式会影响所有页面背景。 <style> page { background-color:…

uniapp可以用vant吗

uniapp可以用vant吗

uniapp中使用Vant组件库的可行性 Vant是专为Vue.js设计的移动端组件库,而uniapp是一个跨平台开发框架。两者并非原生兼容,但可通过以下方式实现部分Vant组件的使用。 方法一:使…

海康 uniapp

海康 uniapp

海康威视与UniApp集成方案 海康威视的硬件设备(如摄像头、NVR等)与UniApp结合,通常需要通过海康的开放平台API或SDK实现功能调用。以下是具体实现方法: 获取海康威视开放平台权限 注册…