前端展开收缩的样式控制

文章目录

收缩效果

展开效果

javascript 复制代码
<section :class="`w-full ${arrowDown ? 'h-39px overflow-hidden' : ''}`">
      <!-- 实际选项 -->
      <el-row class="zlc-tag-row">
        <el-col
          v-for="(tag, index) in [defaultOption, ...tagList]" :key="index" class="zlc-tag mr-2 mb-2"
          :class="{ 'zlc-tag__checked': tag.checked }" :title="tag.label" :xs="12" :sm="6" :md="4" :lg="2" :xl="1"
          @click.stop="index === 0 ? handleSelectDefault() : handleSelect(tag)"
        >
          <span class="flex justify-center ">{{ tag.label }}</span>
        </el-col>
      </el-row>
    </section>
    <el-icon :class="`${arrowDown ? 'rotate-fade-reverse' : 'rotate-fade'} cursor-pointer block`">
      <ArrowDownBold @click="arrowDown = !arrowDown" />
    </el-icon>

// js
const arrowDown = ref<boolean>(true)

// CSS动画
.rotate-fade {
  transform: rotate(180deg);
  transition: transform .25s linear;
}

.rotate-fade-reverse {
  transform: rotate(0deg);
  transition: transform .25s linear;
}

重点是通过arrowDown 的值控制显示的高度及隐藏

相关推荐
bluceli4 分钟前
前端构建工具深度解析:从Webpack到Vite的演进之路
前端
wuhen_n6 分钟前
v-model 的进阶用法:搞定复杂的父子组件数据通信
前端·javascript·vue.js
wuhen_n8 分钟前
TypeScript 深度加持:让你的组合式函数拥有“钢筋铁骨”
前端·javascript·vue.js
滕青山20 分钟前
基于 ZXing 的 Vue 在线二维码扫描器实现
前端·javascript·vue.js
Kayshen33 分钟前
我在设计工具里实现了一个 Agent Team:多智能体协作生成 UI 的实战经验
前端·aigc·agent
swipe44 分钟前
深入理解 JavaScript 中的 this 绑定机制:从原理到实战
前端·javascript·面试
Json_Lee1 小时前
2026 年了,多 Agent 编码该怎么选?agent-team vs Claude Agent Teams vs Claude Squad vs Met
前端·后端·vibecoding
Novlan11 小时前
Stepper 小数输入精度丢失 Bug 修复
前端
陈随易1 小时前
刚上市就断货?如此火爆的编程显示器到底有什么魔力
前端·后端·程序员
兆子龙1 小时前
前端哨兵模式(Sentinel Pattern):优雅实现无限滚动加载
前端·javascript·算法