大佬们菱形进度条怎么实现?


这种进度条怎么实现,有思路吗?还是动态的进度条,随着数据百分比会变,

阅读 2.9k
3 个回答

倾斜可以用transform: skewX(-30deg),条形可以用渐变,进度可以用 CSS 变量来控制,如下(可以自行调整尺寸)

image.png

https://runjs.work/projects/5...

<div class="progress" style="--per: 40%"></div>
.progress{
  width: 300px;
  height: 30px;
  background: linear-gradient(to right,#fff 10px,transparent 0) 0 0/30px, linear-gradient(to right,orange,orange) 0 0/var(--per) no-repeat #eee;
  transform: skewX(-30deg)
}

这个效果纯 css 是可以实现的,用 repeating-linear-gradient 重复渐变 + skewX 倾斜

<head>
    <style>
        .progressBar {
            width: 300px;
            height: 20px;
            box-sizing: border-box;
            background: repeating-linear-gradient(to right, #f40 0 10px, #fff 10px 15px) 0 0/62% no-repeat, repeating-linear-gradient(to right, rgb(85, 85, 85) 0 10px, #fff 10px 15px);
            transform: skewX(-45deg);
        }
    </style>
</head>

<body>
    <div class="progressBar"></div>
</body>

效果如下
image.png

svg canvas 层级+伪元素 tansform扭曲 都是可以实现的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题