罐液位变化组件

接上篇

 

<template>
  <div class="jarBox">
    <!-- 罐子整体+盖 -->
    <div class="bar">
      <!-- 罐顶 -->
      <div class="barBefore"></div>
    </div>
    <!-- 里面液体整体 -->
    <div
      class="barEntity"
      :style="{
        height: number + '%',
        background:
          'linear-gradient(' + barEntityColor[0] + ',' + barEntityColor[1],
      }"
    >
      <!-- 液体顶 -->
      <div class="barEntityBefore"></div>
      <!-- 液体底 -->
      <div
        class="barEntityAfter"
        :style="{
          background:
            'linear-gradient(to bottom left,' +
            barEntityAfterColor[0] +
            ' 10%,' +
            barEntityAfterColor[1],
        }"
      ></div>
    </div>
  </div>
</template>
<script>
export default {
  name: "jarHomeBox",
  components: {},
  props: {
    number: {
      type: Number,
      default: 0,
    },
    // 液体颜色
    barEntityColor: {
      type: Array,
      default: () => {
        return ["rgba(218, 34, 255, 0.3)", "#9733EE"];
      },
    },
    // 液体底或罐底颜色
    barEntityAfterColor: {
      type: Array,
      default: () => {
        return ["rgba(218, 34, 255, 0.5)", "#9733EE"];
      },
    },
  },
  mounted() {},
};
</script>

<style scoped lang="scss">
.jarBox {
  position: absolute;
  top: 24%;
  left: 10%;
  height: 68%;
  width: 80%;
  z-index: 9;

  // 罐子整体
  .bar {
    position: relative;
    height: 100%;
    width: 100%;
    background: transparent;
    // 罐顶
    .barBefore {
      position: absolute;
      top: -10px;
      content: "";
      width: 100%;
      height: 18px;
      border-radius: 50%;
      z-index: 3;
    }
  }
  // 液体
  .barEntity {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 0;
    z-index: 2;
    transition: height 1s ease; //简简单单过度效果就可以解决,搞了那么一圈用动画,真费劲
    // 液体顶
    .barEntityBefore {
      position: absolute;
      top: -16px;
      // content: "";
      width: 100%;
      height: 30px;
      border-radius: 50%;
      //background: url("~@/assets/images/screen/barWater.png") no-repeat;
      //background-size: 100% 100%;
        background: #08b9ff;
      z-index: 2;
    }
    // 罐底
    .barEntityAfter {
      position: absolute;
      bottom: -11px;
      content: "";
      width: 100%;
      height: 24px;
      border-radius: 50%;
      z-index: 1;
    }
  }
}
</style>

 

posted @ 2024-03-12 14:47  如意酱  阅读(10)  评论(0编辑  收藏  举报