css 踩坑记录

实现一个箭头点击折叠动画

 <div class="prod-group">
                  <div class="list-title">产品中心</div>
                    <div class="list-icon h-right" @click="toggleProd">
                          <i class="iconfont icon-awtight " :class="isCollapse?'arrow-down':'arrow-up'" ></i>
                    </div>
                </div>
                <transition name="fade">
                  <div class="prod-list" v-if="isCollapse">
                        <div class="prod-item">11111111111111111</div>
                        <div class="prod-item">11111111111111111</div>
                        <div class="prod-item">11111111111111111</div>
                        <div class="prod-item">11111111111111111</div>
                        <div class="prod-item">11111111111111111</div>
                        <div class="prod-item">11111111111111111</div>
                        <div class="prod-item">11111111111111111</div>
                  </div>
                </transition>

css如下

.arrow-down{
  width: 16px;
  height: 16px;
  display: inline-block;
  animation: down 0.3s ;
  
}
.arrow-up{
  width: 16px;
  height: 16px;
  display: inline-block;
  animation: up 0.3s ;
}

@keyframes down{
  0%{
      transform: rotate(0deg);
  }
  100%{
      transform: rotate(90deg);
  }
}

@keyframes up{
  0%{
      transform: rotate(90deg);
  }
  100%{
      transform: rotate(0deg);
  }
}

原本以为正常,却发现点击以后虽然有动画但是马上又回到了初始值,最后发现问题出在没有设置animation的forwards属性

.arrow-down{
  width: 16px;
  height: 16px;
  display: inline-block;
  animation: down 0.3s forwards;
  
}
.arrow-up{
  width: 16px;
  height: 16px;
  display: inline-block;
  animation: up 0.3s forwards;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值