zoukankan      html  css  js  c++  java
  • vue 自定义步骤条组件(css)

    话不多说直接上组件代码。。

    <template>
      <div>
        <ul class="steps">
          <li
            v-for="(item,index) in SetData"
            :key="item+index"
            :class="{'active':Steps===index}"
          >{{item+Steps}}</li>
        </ul>
      </div>
    </template>
    <script lang="ts">
    import { Component, Prop, Vue } from "vue-property-decorator";
    import axios from "axios";
    @Component
    export default class Steps extends Vue {
      @Prop({default:0}) private Steps!: number;
      @Prop() private SetData!: string[];
    }
    </script>
    
    <style>
    .steps {
      position: relative;
      margin-bottom: 30px;
      counter-reset: step; /*创建步骤数字计数器*/
    }
    /*步骤描述*/
    .steps li {
      list-style-type: none;
      font-size: 12px;
      text-align: center;
       15%;
      position: relative;
      float: left;
    }
    
    /*步骤数字*/
    .steps li:before {
      display: block;
      content: counter(step); /*设定计数器内容*/
      counter-increment: step; /*计数器值递增*/
       32px;
      height: 32px;
      background-color: #019875;
      line-height: 32px;
      border-radius: 32px;
      font-size: 16px;
      color: #fff;
      text-align: center;
      font-weight: 700;
      margin: 0 auto 8px auto;
    }
    
    /*连接线*/
    .steps li ~ li:after {
      content: "";
       100%;
      height: 2px;
      background-color: #019875;
      position: absolute;
      left: -50%;
      top: 15px;
      z-index: -1; /*放置在数字后面*/
    }
    
    /*将当前/完成步骤之前的数字及连接线变绿*/
    .steps li.active:before,
    .steps li.active:after {
      background-color: #019875;
    }
    
    /*将当前/完成步骤之后的数字及连接线变灰*/
    .steps li.active ~ li:before,
    .steps li.active ~ li:after {
      background-color: #777;
    }
    </style>

    调用组件。。。

    <template>
      <div>
        {{num1}}
        <el-button type="warning" @click="getNumber">get a random number</el-button>
        <Steps :Steps="registSpets" :SetData="SetData" />
        <el-button type="primary" @click="registSpets++">+++</el-button>
        {{registSpets}}
        <el-button type="danger" @click="registSpets--">---</el-button>
      </div>
    </template>
    
    <script lang="ts">
    import { Component, Prop, Vue } from "vue-property-decorator";
    import Steps from "../components/Steps.vue";
    @Component({
      components: {
        Steps
      }
    })
    export default class Input extends Vue {
      num1: number = 0;
      registSpets = 1;
      SetData = ["用户信息", "魔童哪吒", "齐天大圣", "赤脚大仙", "我爱中国"];
      getNumber() {
        this.num1 = Math.ceil(Math.random() * 10); // Matg.ceil向上取整
      }
    }
    </script>

    效果如下:

    参考原文:https://blog.csdn.net/xqq580231/article/details/78086173

  • 相关阅读:
    [算法] 堆栈
    [刷题] PTA 02-线性结构3 Reversing Linked List
    java IO流 (八) RandomAccessFile的使用
    java IO流 (七) 对象流的使用
    java IO流 (六) 其它的流的使用
    java IO流 (五) 转换流的使用 以及编码集
    java IO流 (四) 缓冲流的使用
    java IO流 (三) 节点流(或文件流)
    java IO流 (二) IO流概述
    java IO流 (一) File类的使用
  • 原文地址:https://www.cnblogs.com/wilsunson/p/11259110.html
Copyright © 2011-2022 走看看