• vue过渡动画的2种方式(vue动画标签、css3过渡属性)(标记核心决策人) 吴小明


    方式一:使用transition标签包裹需要过渡动画的标签

                <transition name="checkbox">
                  <van-checkbox v-model='item.flag' v-show="isSign">
                    <template #icon="props">
                      <div :class="props.checked ? 'activeIcon' : 'inactiveIcon'"><span></span></div>
                    </template>
                  </van-checkbox>
                </transition>

      对应样式:

            .checkbox-enter-active,
            .checkbox-leave-active {
              transition: width 0.2s linear;
            }
            .checkbox-enter,
            .checkbox-leave-to {
              width: 0;
            }
            .checkbox-enter-to,
            .checkbox-leave {
              width: 28px;
            }

    方式二:(简便)

                <van-checkbox v-model='item.flag' v-show='isSign'>
                  <template #icon="props">
                    <div :class="props.checked ? 'activeIcon' : 'inactiveIcon'"><span></span></div>
                  </template>
                </van-checkbox>

      替换为

                <van-checkbox v-model='item.flag' :style="{isSign?'28px':'0px',transition:'width 0.2s linear'}">
                  <template #icon="props">
                    <div :class="props.checked ? 'activeIcon' : 'inactiveIcon'"><span></span></div>
                  </template>
                </van-checkbox>

      只需要这样简单的样式,就可以为width变化添加上动画。

    对于这种简单动画,这两种方式效果一样,方式二更简单一点,方式一用于更复杂的动画呈现。

    vant中CheckBox自定义图标:

    官网:

    <van-checkbox v-model="checked">
      自定义图标
      <template #icon="props">
        <img class="img-icon" :src="props.checked ? activeIcon : inactiveIcon" />
      </template>
    </van-checkbox>
    export default {
      data() {
        return {
          checked: true,
          activeIcon: 'https://img01.yzcdn.cn/vant/user-active.png',
          inactiveIcon: 'https://img01.yzcdn.cn/vant/user-inactive.png',
        };
      },
    };
      .img-icon {
        height: 20px;
      }

    效果:

      

    自定义的样式:

                <van-checkbox v-model='checked'>
                  自定义图标
                  <template #icon="props">
                    <div :class="props.checked ? 'activeIcon' : 'inactiveIcon'"><span></span></div>
                  </template>
                </van-checkbox>
            // 选中和未选中样式-start
            .activeIcon {
              width: 18px;
              height: 18px;
              border: 2px solid #198cff;
              border-radius: 50%;
              box-sizing: border-box;
              display: flex;
              align-items: center;
              justify-content: center;
              > span {
                display: block;
                width: 10px;
                height: 10px;
                background: #198cff;
                border-radius: 50%;
              }
            }
            .inactiveIcon {
              width: 18px;
              height: 18px;
              border: 2px solid #e0e5f5;
              border-radius: 50%;
              box-sizing: border-box;
            }
            // 选中和未选中样式-end

    效果:

      

  • 相关阅读:
    Java内部类详解
    Mac连接linux服务器
    mac 添加环境变量(jmeter添加至环境变量中)
    Charles使用断点修改返回或请求参数
    解决git clone速度慢的问题
    group by分组后获得每组中时间最大的那条记录
    使用Charles进行弱网测试
    http常见的状态码
    Mac使用Charles抓取ios手机APP中的https请求
    airtest使用poco方法的断言知识
  • 原文地址:https://www.cnblogs.com/wuqilang/p/15634154.html
Copyright © 2020-2023  润新知