• vue + element 侧边滑出效果


    点击一个按钮出现下图:感觉如果右侧不是滑出来的 ,就感觉 怪怪的。然后就把这玩意儿 抽出来做了一个简单的组件使用

    slid组件代码

    <template>
      <div class='component-slid' v-if="show">
          <!-- component-slid-open 和 component-slid-out 是keyframes动画效果的 -->
          <div :class="showSlid ? 'component-slid-open' : 'component-slid-out'">
              <!-- 在组件内书写内容slot接收嘛 -->
              <slot></slot>  
          </div>
      </div>
    </template>
    
    <script>
    export default {
      components: {},
      name: 'component-slid',
      props:{
          showSlid:{
              type: Boolean,
              default: false
          }
      },
      data(){
        return {
            show:false
        }
      },
      created(){},
      mounted(){},
      updated(){
        //   至于这里给了一个延时器  主要是为了 返回时能完成 回退的一个动画效果
          setTimeout(() => {
              this.show = this.showSlid
          },300)
      },
      methods: {}
    }
    </script>
    <style lang='scss' scoped>
    .component-slid{
        position: absolute;
        top:0;
        left: 0;
        height: 100%;
         100%;
        background: rgba(000, 000, 000, 0.3);
        .component-slid-open{
            position: absolute;
            top: 0;
            right: 0;
             600px;
            height: 100%;
            background: #fff;
            opacity: 1;
            animation: slid-open 0.5s ease;
        }
        .component-slid-out{
            position: absolute;
            top: 0;
            right: 0;
             600px;
            height: 100%;
            background: #fff;
            animation: slid-out 0.5s ease;
        }
    }
    @keyframes slid-open{
        0%{
            transform: translateX(100%);
            opacity: 0;
        }
        100%{
            transform: translateX(0);
        }
    }
    @keyframes slid-out{
        0%{
             600px;
            transform: translateX(0)
        }
        100%{
            transform: translateX(100%)
        }
    }
    </style>

    这个东西 主要是做一下笔记 

    使用的话

    <template>
      <div class='weather'>
        <el-button type="primary" @click="openSlid">主要按钮</el-button>
        <component-slid :showSlid="showSlid">
          <span @click="back">&lt; 返回</span>
        </component-slid>
      </div>
    </template>
    
    <script>
    import componentSlid from './components/component-slid'
    export default {
      components: {componentSlid},
      name: 'weather',
      data(){
        return {
          showSlid:false
        }
      },
      created(){},
      mounted(){},
      methods: {
        openSlid(){
          this.showSlid = true
        },
        back(){
          this.showSlid = false
        }
      }
    }
    </script>
    <style lang='scss' scoped>
    </style>
  • 相关阅读:
    mysql索引
    mysql中的事务
    mysql的各种join连接
    java集合-LinkedList源码分析
    java集合(二)-ArrayList源码分析
    java集合(一)-集合概述
    java并发(五)-重排序、 happens-before
    vue引入百度地图 --BMap is not defined ,eslint BMap报错
    红星美凯龙前端面试内容总结
    vue父子组件钩子函数的执行顺序
  • 原文地址:https://www.cnblogs.com/TreeCTJ/p/12981468.html
Copyright © 2020-2023  润新知