vue實現(xiàn)簡單loading進(jìn)度條
剛學(xué)習(xí)vue不久,今天試著用vue做了一個簡單的loading進(jìn)度條,對于vue的生命周期和鉤子函數(shù)又有了新的理解,下面分享給大家,絕對入門級。
一、進(jìn)度條原理
這個就很簡單了,也是我們經(jīng)??梢杂玫降?,這里只做一個最簡單的,頁面刷新自動加載進(jìn)度條。主要是讓進(jìn)度條的width不斷增加至100%就可以啦~好了,進(jìn)入正題。
二、jquery實現(xiàn)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" > <link rel="stylesheet" > <title>jq進(jìn)度條</title> </head> <body> <div id="app"> <div class="progress round alert"> <span class="meter" style="width:0%">0%</span> </div> </div> <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script> <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js "></script> <script src="https://cdn.bootcss.com/foundation/5.5.3/js/foundation.min.js "></script> <script> $(function () { var html = $('.meter'); var htmlW = $('.meter').val(); var styleW = parseInt($('.meter').css('width')); var clearInt = setInterval(function () { styleW++; var styleWW = styleW + '%'; html.css('width', styleWW); html.html(styleWW); if (styleW == 100) { clearInterval(clearInt); } }, 20) }) </script> </body> </html>
三、vue實現(xiàn)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>vue進(jìn)度條</title> <link rel="stylesheet" > <link rel="stylesheet" > <style> .bar{ color: #fff; text-align: center; } </style> </head> <body> <div id="app"> <div class="progress alert round"> <span class="meter bar" :style="{width:proBar+'%',}" >{{proBar}}</span> </div> </div> <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script> <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js "></script> <script src="https://cdn.bootcss.com/foundation/5.5.3/js/foundation.min.js "></script> <script> var app = new Vue({ el: '#app', data: { proBar: 0, }, created(){ this.change(); }, methods: { change: function() { var clearInt = setInterval(function() { app.proBar++; console.log(app.prpBar); if (app.proBar == 100) { clearInterval(clearInt); } }, 20) } } }) </script> </body> </html>
對比兩段代碼顯然vue要方便許多,因為是雙向綁定,不用來回操作dom,就很簡單省心啦。
注意問題:剛開始沒有實現(xiàn)loading效果,主要是因為用了mounted鉤子函數(shù)來調(diào)用change方法(還是對生命周期理解的不到位)。實現(xiàn)loading效果我們需要在頁面加載時自動調(diào)用change方法,所以我們應(yīng)該在數(shù)據(jù)全部初始化前就執(zhí)行這一操作。mounted時期已經(jīng)全部完成初始化,所以便不會成功。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Vue進(jìn)度條progressbar組件功能
- vue組件實現(xiàn)進(jìn)度條效果
- vue頁面加載時的進(jìn)度條功能(實例代碼)
- vue.js+ElementUI實現(xiàn)進(jìn)度條提示密碼強度效果
- 在vue項目中使用Nprogress.js進(jìn)度條的方法
- vue開發(fā)拖拽進(jìn)度條滑動組件
- vue2.0實現(xiàn)音樂/視頻播放進(jìn)度條組件
- Vue實現(xiàn)帶進(jìn)度條的文件拖動上傳功能
- Vue render渲染時間戳轉(zhuǎn)時間,時間轉(zhuǎn)時間戳及渲染進(jìn)度條效果
- vue視頻時間進(jìn)度條組件使用方法詳解
相關(guān)文章
vue生成二維碼QR?Code的簡單實現(xiàn)方法示例
這篇文章主要為大家介紹了vue生成二維碼QR?Code的實現(xiàn)示例詳情,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04el-table多選toggleRowSelection不生效解決方案
這篇文章主要給大家介紹了關(guān)于el-table多選toggleRowSelection不生效的解決方案,文中通過圖文以及代碼將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08vue2.0實現(xiàn)列表數(shù)據(jù)增加和刪除
這篇文章主要為大家詳細(xì)介紹了vue2.0實現(xiàn)列表數(shù)據(jù)增加和刪除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06解決vue初始化項目一直停在downloading template的問題
這篇文章主要介紹了解決vue初始化項目一直停在downloading template的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11