bootstrap實(shí)現(xiàn)動(dòng)態(tài)進(jìn)度條效果
Bootstrap的動(dòng)態(tài)進(jìn)度條:
html: 創(chuàng)建一個(gè)modal 這里使用fade先將modal隱藏起來(lái),然后modal里面嵌入progress 代碼很簡(jiǎn)單
<div class="modal fade" data-backdrop="static" tabindex="-1" id="progressbar">
<!--窗口聲明:-->
<div class="modal-dialog modal-lg">
<!-- 內(nèi)容聲明 -->
<div class="modal-content">
<!-- 主體 -->
<div class="modal-body">
<div class="progress progress-striped active">
<div id="test" class="progress-bar progress-bar-success" role="progressbar" style="width: 10%;">
保存中:{{length}}%
</div>
</div>
</div>
</div>
</div>
</div>
PS:關(guān)于模態(tài)框:如果你想實(shí)現(xiàn)點(diǎn)擊空白處不關(guān)閉模態(tài)框,可以在<div class="modal fade" data-backdrop="static">這里初始化modal的參數(shù),或者在js里面通過(guò)
$('.modal').modal({backdrop: 'static', keyboard: false});設(shè)置并打開,當(dāng)然,哪種方便就用哪種
js:
//進(jìn)度條的控制
function startProgerss(){
var trytmp=0;
var wait=false;
run();
function run(){
if(!wait){
vue.length+=(Math.random()*10).ceil();
}
if(vue.length<=98){
if(vue.length>80 && textupover && imgupover){
vue.length=100;
$("div[role='progressbar']").css("width","100%");
//短暫延遲后刷新頁(yè)面,貌似""作用是刷新本頁(yè)面
refreshtohome(1000, "");
}else{
$("div[role='progressbar']").css("width",vue.length+"%");
var timer=setTimeout(run,100);
}
}else{//等待時(shí)間過(guò)長(zhǎng),可能出現(xiàn)了其他錯(cuò)誤
wait=true;//進(jìn)入等待狀態(tài)
vue.length=99;
$("div[role='progressbar']").css("width","99%");
//查看服務(wù)器的響應(yīng)
if(textupover && imgupover){
vue.length=100;
$("div[role='progressbar']").css("width","100%");
//短暫延遲后刷新頁(yè)面,貌似""作用是刷新本頁(yè)面
refreshtohome(1000, "");
}
if(++trytmp<10){//超時(shí)等待(大約10s)
var timer=setTimeout(run,1000);
}else{
alert("服務(wù)器響應(yīng)失??!");
//隱藏進(jìn)度條提示框
$('#progressbar').modal('hide');
//重置進(jìn)度條的長(zhǎng)度
vue.length=10;
}
}
}
}
解釋:重點(diǎn)是要明白進(jìn)度條的意義:給用戶一個(gè)讀條,讓用戶看到程序是在進(jìn)行而不是死機(jī)了,這可以加強(qiáng)應(yīng)用的用戶體驗(yàn)效果。
我上面代碼是這樣設(shè)計(jì)的:當(dāng)提交表單,調(diào)用js顯示模態(tài)框(相當(dāng)于顯示進(jìn)度條),然后js動(dòng)態(tài)改變進(jìn)度條的樣式(長(zhǎng)度),自己控制一個(gè)可取的范圍
當(dāng)前臺(tái)接收到后臺(tái)的響應(yīng)的時(shí)候,讓進(jìn)度條加載到100%,關(guān)閉模態(tài)框(隱藏進(jìn)度條),刷新數(shù)據(jù)。。
關(guān)于百分比的顯示,我這里使用了Vue.js來(lái)代理,js改變vue.length的值,間接改變前臺(tái)百分比的顯示。當(dāng)然,條條大路通羅馬,沒有最好的設(shè)計(jì),只有更好的思想。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Bootstrap每天必學(xué)之進(jìn)度條
- BootStrap Progressbar 實(shí)現(xiàn)大文件上傳的進(jìn)度條的實(shí)例代碼
- BootStrap 實(shí)現(xiàn)各種樣式的進(jìn)度條效果
- BootStrap初學(xué)者對(duì)彈出框和進(jìn)度條的使用感覺
- Spring Boot+AngularJS+BootStrap實(shí)現(xiàn)進(jìn)度條示例代碼
- bootstrap多種樣式進(jìn)度條展示
- BootStrap組件之進(jìn)度條的基本用法
- Bootstrap實(shí)現(xiàn)各種進(jìn)度條樣式詳解
- Bootstrap進(jìn)度條實(shí)現(xiàn)代碼解析
- jquery 簡(jiǎn)單的進(jìn)度條實(shí)現(xiàn)代碼
- 分享8款優(yōu)秀的 jQuery 加載動(dòng)畫和進(jìn)度條插件
- bootstrap+jQuery實(shí)現(xiàn)的動(dòng)態(tài)進(jìn)度條功能示例
相關(guān)文章
js有趣的非空判斷函數(shù) + ?? 實(shí)現(xiàn)
本文介紹了JS中空值合并操作符??的用法,包括如何使用它來(lái)判斷數(shù)據(jù)是否為“合法數(shù)據(jù)”,即非空字符串、非undefined和非null,下面就一起來(lái)了解一下,感興趣的可以了解一下2024-09-09
微信小程序 點(diǎn)擊切換樣式scroll-view實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了微信小程序 點(diǎn)擊切換樣式scroll-view實(shí)現(xiàn)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
Grunt入門教程(自動(dòng)任務(wù)運(yùn)行器)
Grunt是一個(gè)自動(dòng)任務(wù)運(yùn)行器,會(huì)按照預(yù)先設(shè)定的順序自動(dòng)運(yùn)行一系列的任務(wù)。這可以簡(jiǎn)化工作流程,減輕重復(fù)性工作帶來(lái)的負(fù)擔(dān)2015-08-08
Javascript技術(shù)難點(diǎn)之a(chǎn)pply,call與this之間的銜接
這篇文章主要介紹了Javascript技術(shù)難點(diǎn)之a(chǎn)pply,call與this之間的銜接的相關(guān)資料,需要的朋友可以參考下2015-12-12
js中onclick和addEventListener的區(qū)別詳解
這篇文章深入探討了JavaScript中處理事件的兩種不同方法,即熟悉的onclick和多功能的addEventListener方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-08-08
一文搞懂JSON(JavaScript Object Notation)
Json 有兩種基本的結(jié)構(gòu),即 Json對(duì)象 和 Json 數(shù)組。通過(guò) Json 對(duì)象和 Json 數(shù)組這兩種結(jié)構(gòu)的組合可以表示各種復(fù)雜的結(jié)構(gòu),今天通過(guò)本文給大家介紹JavaScript Object Notation的基本知識(shí),感興趣的朋友一起看看吧2021-10-10
JS如何設(shè)置cookie有效期為當(dāng)天24點(diǎn)并彈出歡迎登陸界面
這篇文章主要介紹了JS如何設(shè)置cookie有效期為當(dāng)天24點(diǎn)并彈出歡迎登陸界面的代碼,代碼比較簡(jiǎn)單,好理解,需要的朋友可以參考下2016-08-08

