原生JS与Vue实现带箭头进度条流程详解

作者:松果时间:2026-10-23 16:59:33浏览:369

本文详细展示了如何使用HTML、CSS和JavaScript实现一个带有箭头指示的进度流程组件。通过提供完整的代码示例,包括Vue.js版本和非Vue版本的样式说明,帮助开发者快速掌握进度条的实现技巧,适用于各类前端项目中的流程展示需求。

带箭头进度条实现概述

本文分享了一个使用JavaScript实现带箭头进度流程的具体代码案例,供读者参考和学习。

HTML结构构建

HTML结构部分

Vue列表渲染示例


<ul class="cssNav">
  <li v-for="(item,i) in list" :class="[num==i?'active':'']" @click="tab(i)">{{item}}</li>
</ul>

CSS样式设计

CSS样式定义部分

进度条箭头样式实现


.cssNav {
    margin: 100px auto;
    background-color: #dedede;
    width:420px;
  }

  .cssNav li{
    padding:0 20px;
    line-height: 40px;
    background-color: #50abe4;
    display: inline-block;
    color:#fff;
    position: relative;
    margin-right: 4px;
  }
  .cssNav li:after{
    content:"";
    display: block;
    border-top:20px solid transparent;
    border-bottom:20px solid transparent;
    border-left:20px solid #50abe4;
    position: absolute;
    right:-20px;
    top:0;
    z-index: 10;
  }
  .cssNav li:before{
    content:"";
    display: block;
    border-top:20px solid transparent;
    border-bottom:20px solid transparent;
    border-left:20px solid #fff;
    position: absolute;
    left:0px;
    top:0;
  }

  .cssNav li:first-child{
    border-radius: 4px 0 0 4px;
    padding-left:25px;
  }
  .cssNav li:last-child,.cssNavEnd{
    border-radius: 0 4px 4px 0;
    padding-right: 25px;
  }
  .cssNav li:first-child:before{
    display: none;
  }
  .cssNav li:last-child:after,.cssNavEnd:after{
    display: none;
  }
  .cssNav li.active { 
    background-color: #ef72b6; 
  } 
  .cssNav li.active:after { 
    border-left-color: #ef72b6; 
  } 

JavaScript交互逻辑

JavaScript逻辑实现部分

Vue实例与事件处理


// 需要引入vue.js 
 new Vue({
    el: '.cssNav',
    data: {
        num:0,
        list:['首页','测试文字','新闻也','地址页']
      },
    methods: {
      tab:function(i){
        this.num = i;
      }
    }  
  })

非Vue环境适配说明

注意:如果不使用Vue.js进行开发,只需复制相应的CSS样式即可实现视觉效果。

总结与致谢

以上就是本文的全部内容,希望能为各位的学习带来帮助,同时也欢迎大家继续支持本站获取更多资源。

作者最新文章