Home > Web Front-end > Vue.js > body text

How to use Vue to implement progress circle special effects

WBOY
Release: 2023-09-22 09:03:34
Original
934 people have browsed it

How to use Vue to implement progress circle special effects

How to use Vue to implement progress circle effects

Introduction:
In web development, progress circle effects are often used to display loading progress, countdown and other scenarios. As a popular front-end framework, Vue provides a wealth of tools and life cycle hook functions, which can easily implement various special effects. This article will introduce how to use Vue to implement a simple progress circle effect and provide relevant code examples.

1. Project initialization
First, we need to create a Vue project. You can use Vue-CLI to quickly build a basic project skeleton. Execute the following command in the command line:

npm install -g @vue/cli
vue create progress-circle-demo
cd progress-circle-demo
npm run serve
Copy after login

The above command will install Vue-CLI globally, create a project named progress-circle-demo, and start the development server.

2. Writing the component
Create a file named ProgressCircle.vue in the src directory as the core code of the progress circle component. The specific code is as follows:

<template>
  <div class="progress-circle">
    <div class="circle">
      <div class="mask full"></div>
      <div class="mask half"></div>
      <div class="fill"></div>
    </div>
    <span class="text">{{ progress }}%</span>
  </div>
</template>

<script>
export default {
  props: {
    progress: {
      type: Number,
      default: 0,
      validator(value) {
        return value >= 0 && value <= 100;
      }
    }
  }
}
</script>

<style scoped>
.progress-circle {
  display: inline-block;
  position: relative;
  width: 50px;
  height: 50px;
}

.circle {
  position: relative;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
  border-radius: 50%;
  overflow: hidden;
  box-sizing: border-box;
}

.mask {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  clip: rect(0, 50px, 50px, 25px);
}

.full {
  background-color: #ccc;
}

.half {
  background-color: #f60;
}

.fill {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #f60;
  transform: rotate(0deg);
  transform-origin: center center;
  transition: transform 0.6s ease-out;
}

.text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 14px;
  color: #333;
}
</style>
Copy after login

The above code defines a ProgressCircle component, which uses an HTML structure to achieve the effect of the progress circle and accepts the progress value through the props attribute. The progress circle consists of a circular mask layer and a fill layer, and the animation effect is achieved by changing the transform attribute of the fill layer.

3. Use components
Use the component just written in the App.vue file in the src directory. The specific code is as follows:

<template>
  <div id="app">
    <ProgressCircle :progress="60" />
  </div>
</template>

<script>
import ProgressCircle from './components/ProgressCircle.vue';

export default {
  name: 'App',
  components: {
    ProgressCircle
  }
}
</script>
Copy after login

The above code introduces the ProgressCircle component and uses it in the template, passing in the progress attribute to control the progress.

4. Run the project
Now we can run the npm run serve command in the command line to start the development server. Open http://localhost:8080 in the browser to see the progress circle effect.

Summary:
This article introduces how to use Vue to implement progress circle special effects through a simple example. In the project, corresponding style and logic adjustments can be made according to actual needs. I hope this article will help you understand how to implement progress circle special effects in Vue.

Reference link:

  • Vue official documentation: https://vuejs.org/
  • Vue-CLI official documentation: https://cli.vuejs. org/

The above is the detailed content of How to use Vue to implement progress circle special effects. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template