Vue实现横向进度条

简介: Vue实现横向进度条

进度条的样式我们基本很少手写,都是通过UI组件库的方式或者网上一些别人写好的拿过来借鉴一下,但是进度条是基本都是产品设计好的,如果网上并没有大致相同的,UI组件库的进度条样式和产品图也不一样,我们也无权修改效果图的情况下,只能手写,我们今天来实现一下好看的横向进度条

效果图

这里其实是没有按钮的,只不过是为了让我们能够清晰的看到进度条的变化所加上的

image.png

页面结构

外面有一个大盒子,大盒子中包含了一个百分比显示的盒子,一个进度条的盒子,进度条盒子中包含了一个无序列表,无序列表主要用于进度条的填充实现,里面有五个子元素,分别代表着0%,25%,50%,75%,100%,这四个进度,我们在给上样式,如果进度超过了元素设置的界定值,则会被点亮,否则就是未点亮状态,最后加上两个按钮,这两个按钮绑定了两个方法,方法作用于操作进度条的增减

<div id="home">
    <div>{{courseCompletionRate}}%</div>
   <!-- 进度条 -->
    <div class="study_progress">
      <!-- 填充 -->
      <ul :style="{width:`${courseCompletionRate}%`}">
        <li :class="{study_progress_active:courseCompletionRate>0}"></li>
        <li :class="{study_progress_active:courseCompletionRate>25}"></li>
        <li :class="{study_progress_active:courseCompletionRate>50}"></li>
        <li :class="{study_progress_active:courseCompletionRate>75}"></li>
        <li :class="{study_progress_active:courseCompletionRate>=100}"></li>
      </ul>
    </div>
    <div class="set">
    <button @click="add"> 增加进度</button>
    <button @click="reduce">减少进度</button>
    </div>

逻辑实现

我们定义了一个属性,属性是进度条的进度,默认进度是0,在定义两个方法,一个是增加进度条进度,一个是减少进度条进度,我们在方法中使用逻辑符中断的特性给进度条增减加上判断条件,增加判断条件的原因是保证进度条的值不大于小于界定值,我们的界定值最小为0最大为100

export default {
  data() {
    return {
    //进度条进度
    courseCompletionRate:0
    };
  },
  methods: {
  //增加进度条进度
 add(){
 //判断当前进度是否小于100,如果小于100则进行增加进度
this.courseCompletionRate<100&&this.courseCompletionRate++
 },
 //减少进度条进度
 reduce(){
 //判断当前进度是否大于0,如果大于0则可以进行减少进度
this.courseCompletionRate>0&&this.courseCompletionRate--
 }
  },
};

代码我放到码上掘金上了,有兴趣的可以看一下!这里代码需要放到本地Vue项目中才可以运行


image.png

坚持努力,无惧未来!

相关文章
|
17天前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
19天前
|
JavaScript 前端开发 开发者
vue 数据驱动视图
总之,Vue 数据驱动视图是一种先进的理念和技术,它为前端开发带来了巨大的便利和优势。通过理解和应用这一特性,开发者能够构建出更加动态、高效、用户体验良好的前端应用。在不断发展的前端领域中,数据驱动视图将继续发挥重要作用,推动着应用界面的不断创新和进化。
|
20天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
23 1
vue学习第一章
|
20天前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
22 1
vue学习第三章
|
20天前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
35 1
vue学习第四章
|
17天前
|
JavaScript 前端开发 开发者
Vue是如何劫持响应式对象的
Vue是如何劫持响应式对象的
19 1
|
17天前
|
JavaScript 前端开发 API
介绍一下Vue中的响应式原理
介绍一下Vue中的响应式原理
26 1
|
20天前
|
JavaScript 前端开发
vue学习第五章
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,正向全栈进发。如果你从我的文章中受益,欢迎关注,我将持续分享更多优质内容。你的支持是我最大的动力!🎉🎉🎉
24 1
|
17天前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
17天前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能