css 特殊进度条
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.staticfile.net/vue/3.2.36/vue.global.min.js"></script>
<style>
body {
background: rgba(44, 163, 255, 1);
}
.itembox {
width: 400px;
background: rgba(255, 255, 255, 0.1);
border-radius: 16px 0px 16px 0px;
border: 4px solid #E3F3FF;
/* height: 40px; */
padding: 10px;
overflow: hidden;
display: flex;
flex-wrap: nowrap;
}
.flex-shrink0 {
-moz-flex-shrink: 0;
-ms-flex-shrink: 0;
-webkit-flex-shrink: 0;
flex-shrink: 0;
}
.item {
background: #7EC6FD;
width: 20px;
height: 40px;
margin-right: 10px;
transform: skewX(-40deg);
position: relative;
}
.item-progress {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: #fff;
}
.btn {
border-radius: 10px;
display: inline-block;
padding: 10px;
margin-top: 20px;
color: #fff;
cursor: pointer;
border:1px solid #fff
}
.btn:hover {
opacity: 0.8;
}
.test{
font-size: 26px;
color: #fff;
margin-bottom: 10px;
}
</style>
</head>
<body>
<div id="hello-vue" class="demo">
<div class="itembox">
<div v-for="item in RangeCount" :key="item" class="item flex-shrink0">
<div class="item-progress" v-if="item <=currentCount"> </div>
</div>
</div>
<div class="test"> {{currentCount}} {{count}} /{{countTol}}</div>
<div @click="aaaa" class="btn">增加进度哦</div>
</div>
<script>
const HelloVueApp = {
data() {
return {
message: 'Hello Vue!!',
currentCount: 0,
RangeCount:14,
count: 0,
countTol: 100
}
},
methods: {
aaaa() {
if(this.count>=this.countTol){
return false
}
this.count += 10;
var p= this.count/this.countTol;
this.currentCount= Math.floor(this.RangeCount*p);
console.log('aaa ', p, this.RangeCount*p, this.currentCount);
}
}
}
Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>
</body>
</html>
效果:


浙公网安备 33010602011771号