• 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

  • 相关阅读:
    [LeetCode] 148. Sort List 解题思路
    [LeetCode] 21. Merge Two Sorted Lists 解题思路
    [LeetCode] 160. Intersection of Two Linked Lists 解题思路
    [LeetCode] 203. Remove Linked List Elements 解题思路
    是否是最美的6年
    Apache的Order Allow,Deny 详解
    apache 2.4 访问权限配置
    apache如何设置http自动跳转到https
    linux ssh_config和sshd_config配置文件
    mysql命令查询表的个数
  • 原文地址:https://www.cnblogs.com/wilsunson/p/11259110.html
Copyright © 2020-2023  润新知