vue实现收起展开面板

Posted 水星记_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue实现收起展开面板相关的知识,希望对你有一定的参考价值。

实现效果

代码展示

<template>
  <div class="maxBox">
    <!-- 左侧容器 -->
    <div class="leftBox" v-if="play">内容</div>
    <!-- 点击容器 -->
    <div ref="btnNode" class="btnBox" @click="toggle">
      <img src="https://i.postimg.cc/c4zMGwGj/sq.png" class="imageBox"/>
    </div>
  </div>
</template>

<script>
export default 
  data() 
    return 
      play: true,//默认显示左侧容器
    ;
  ,
  methods: 
    toggle() 
      this.play = !this.play;
      //通过点击事件判断play的样式
      if (this.play) 
        this.$refs.btnNode.style = "left:30%";
       else 
        this.$refs.btnNode.style = "transform:rotate(180deg);left:0px"; //transform:rotate(180deg):翻转180度
      
    ,
  ,
;
</script>

<style scoped>
/* 最外层的盒子 */
.maxBox 
  width: 100%;
  height: 100%;
  background: cornflowerblue;
  position: relative;

/* 左侧容器样式 */
.leftBox 
  position: absolute;
  width: 30%;
  height: 100%;
  background: cadetblue;

/* 点击容器样式 */
.btnBox 
  position: absolute;
  top: calc(50% - 40px);
  left: 30%;
  cursor: pointer;
  z-index: 999;

/* icon图片的样式 */
.imageBox 
  width: 35px;
  height: 80px;

</style>

以上是关于vue实现收起展开面板的主要内容,如果未能解决你的问题,请参考以下文章

iOS-文本内容展开/收起实现方案

vue实现点击展开,点击收起

Vue实现任意内容展开 / 收起功能组件

Vue实现任意内容展开 / 收起功能组件

HTML中列表收起与展开

VUE transition实现展开/收起高度不确定的元素