淡入淡出多卡片切换vue

3 篇文章 0 订阅

淡入淡出多卡片切换

在这里插入图片描述

上图代码如下

 <template>
  <div class="content">
    <h4>多卡片切换</h4>
    <!--  name="slide-fade"对应 
    .slide-fade-enter-active .slide-fade-leave-active .slide-fade-leave-active .slide-fade-enter
    等几个类名,如果没有设置name,则对应.v-enter-active .v-leave-to等 -->
    <transition name="slide-fade">
      <div class="card" :style="`background:${cardInfo.color}`" :key="cardInfo.key" @click="changeDocState()">
        <div class="card-top">{{cardInfo.title}}</div>
        <div class="card-body">{{cardInfo.content}}</div>
      </div>
    </transition>
  </div>
</template>
<script>
export default {
  data() {
    return {
      key: 1,
      show: true,
      velocityShow: false,
      cardInfo: { key: 'card1', title: '卡片1', content: '卡片1内容', color: 'lightgoldenrodyellow' },
      cardList: [
        { key: 'card1', title: '卡片1', content: '卡片1内容', color: 'lightgoldenrodyellow' },
        { key: 'card2', title: '卡片2', content: '卡片2内容', color: 'lightpink' },
        { key: 'card3', title: '卡片3', content: '卡片3内容', color: 'lightblue' },
      ],
      index: 0,
    }
  },
  methods: {
    changeDocState() {
      console.log('切换')
      this.index = (this.index + 1) % this.cardList.length
      this.cardInfo = this.cardList[this.index];
    },
  }
}
</script>

<style>
.content {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.card {
  width: 500px;
  height: 800px;
  border: 1px solid #888;
  border-radius: 6px;
  box-shadow: 5px 5px 3px #888888;
  /* 定位采用absolute,避免出现动画不流畅的问题 */
  position: absolute;
  top: 60px;

}

/* 可以设置不同的进入和离开动画 */
/* 设置持续时间和动画函数 */
/* 推荐移入和移出的运动曲线保持一致 */
.slide-fade-enter-active {
  transition: all .5s ease-in-out;
}
.slide-fade-leave-active {
  transition: all .5s ease-in-out;
}


/* 移入前和移出后状态 */
.slide-fade-enter { 
  transform: translateX(500px);
  opacity: 0;
}

.slide-fade-leave-to
 /*.slide-fade-leave-active  用于 2.1.8 以下版本  */{
  transform: translateX(-500px);
  opacity: 0;
}
</style>

参考链接

vue官方-列表过渡 https://cn.vuejs.org/v2/guide/transitions.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值