最近公司有一個專案正在開發
USER可以在畫面下po number 搜尋資料庫
將po相同的項目秀在list上面
這些功能是已經完成的項目
但主管希望在搜尋資料庫等待的這幾秒鐘
能夠用circular progress bars美觀畫面
我在網路上搜尋一些用法
發現都沒有實際的範例可以參考
小弟剛接觸這部分
不知道有沒有大大有實際用在這方面的範本可以提供參考
感謝
bootstrap4好像沒有圓形的progress bar
那就用原本的示範一下好了
首先先複製一下官方範例
<div class="progress">
<div class="progress-bar" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
至於怎麼用呢?
只要控制style的width就可以了
動畫部分bootstrap都幫你做好了
我們要做的就是用vue控制with
設定一個變數barValue幫變數用
在mounted事件裡改變數值
new Vue({
el: '#app',
mounted:function(){
setTimeout(() => {
this.barValue = '100%'
}, 1000);
},
data: {
barValue: '10%',
test:'123'
}
})
因為怕他一進去就跑完所以settimeout延遲一秒
然後html繫節部分改成下面這樣
<div class="progress">
<div class="progress-bar" role="progressbar" v-bind:style="{width: barValue}" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">
</div>
</div>
style改成v-bind:style
大概就這樣
完整範例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
</head>
<body>
<div id="app">
<div class="progress">
<div class="progress-bar" role="progressbar" v-bind:style="{width: barValue}" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script>
new Vue({
el: '#app',
mounted:function(){
setTimeout(() => {
this.barValue = '100%'
}, 1000);
},
data: {
barValue: '10%'
}
})
</script>
</body>
</html>