0
点赞
收藏
分享

微信扫一扫

vue表格自动滚动且大小自适应(vh), 自定义

DT_M 2022-03-12 阅读 79

<template>

  <div class="div-table">

    <div

      class="div-table-header"

      :style="{ height: height + 'vh', lineHeight: height + 'vh' }"

    >

      <span>序号</span>

      <span>姓名</span>

      <span>年龄</span>

    </div>

    <div class="div-table-body" style="height: 25vh">

      <div

        v-for="(item, index) in list"

        :key="index"

        class="content"

        :class="{ active: index % 2 }"

        :style="{

          height: height + 'vh',

          lineHeight: height + 'vh',

          transform: 'translateY(' + topWidth + 'vh)',

        }"

      >

        <span>{{ index }}</span>

        <span>{{ item.name }}</span>

        <span>{{ item.age }}</span>

      </div>

    </div>

  </div>

</template>

<script>

export default {

  data() {

    return {

      index: 0,

      height: 5,

      timer: null,

      topWidth: 0,

      list: [

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        {

          name: "二驴",

          age: 48,

          jiao: 60,

        },

        // {

        //   name: "二驴",

        //   age: 48,

        //   jiao: 60,

        // },

        // {

        //   name: "二驴",

        //   age: 48,

        //   jiao: 60,

        // },

        // {

        //   name: "二驴",

        //   age: 48,

        //   jiao: 60,

        // },

        // {

        //   name: "二驴",

        //   age: 48,

        //   jiao: 60,

        // },

        // {

        //   name: "二驴",

        //   age: 48,

        //   jiao: 60,

        // },

        // {

        //   name: "二驴",

        //   age: 48,

        //   jiao: 60,

        // },

      ],

    };

  },

  props: {},

  methods: {

    getTimer() {

      if (this.list.length > 10) {

        this.timer = setInterval(() => {

          this.index++;

          this.topWidth = -this.index * this.height;

          if (this.index == this.list.length - this.height) {

            this.index = 0;

          }

        }, 2000);

      } else {

        this.timer = null;

      }

    },

  },

  mounted() {

    this.getTimer();

  },

  beforeDestroy() {

    this.timer = null;

  },

};

</script>

<style lang="stylus" scoped>

.div-table {

  // height: 400px;

  width: 600px;

  margin: 30px auto;

  border: 1px solid #090;

  background: #fff;

  .div-table-header {

    display: flex;

    text-align: center;

    span {

      flex: 1;

    }

  }

  .div-table-body {

    // border: 2px solid #f00;

    overflow: hidden;

    .content {

      display: flex;

      text-align: center;

      transition: all 2s linear;

      background: #1000999e;

      span {

        flex: 1;

      }

    }

    .active {

      background: #6e269c9e;

    }

  }

}

</style>

举报

相关推荐

0 条评论