Circle

Install

import Vue from 'vue';
import { Circle } from 'vant';

Vue.use(Circle);

Usage

Basic Usage

<van-circle
  v-model="currentRate"
  :rate="30"
  :speed="100"
  :text="text"
/>
export default {
  data() {
    return {
      currentRate: 0
    };
  },
  computed: {
    text() {
      return this.currentRate.toFixed(0) + '%'
    }
  }
};

Custom Width

<van-circle
  v-model="currentRate"
  :rate="rate"
  :stroke-width="60"
  text="Custom Width"
/>

Custom Color

<van-circle
  v-model="currentRate"
  :rate="rate"
  layer-color="#ebedf0"
  text="Custom Color"
/>

Gradient

<van-circle
  v-model="currentRate"
  :rate="rate"
  :color="gradientColor"
  text="Gradient"
/>
export default {
  data() {
    return {
      currentRate: 0,
      gradientColor: {
        '0%': '#3fecff',
        '100%': '#6149f6'
      }
    };
  }
};

Counter Clockwise

<van-circle
  v-model="currentRate"
  :rate="rate"
  :clockwise="false"
  text="Counter Clockwise"
/>

Custom Size

<van-circle
  v-model="currentRate"
  :rate="rate"
  size="120px"
  text="Custom Size"
/>

API

Props

Attribute Description Type Default Version
v-model Current rate number - -
rate Target rate number 100 -
size Circle size string | number 100px -
color Progress color, passing object to render gradient string | object #1989fa 2.1.4
layer-color Layer color string #fff -
fill Fill color string none -
speed Animate speedrate/s number 0 -
text Text string - -
stroke-width Stroke width number 40 -
clockwise Is clockwise boolean true -

Slots

Name Description
default custom text content