本文概述
- Progressbar JavaScript API
- 例
“ progressbar”类用于指定进度条。当你要指定用户不知道该请求的加载过程将持续多长时间时, 将使用“ progressbar-infinite”类。
Progressbar JavaScript API进度栏与JavaScript API结合使用, 可通过以下方法指定显示, 隐藏和进度属性:
myApp.setProgressbar(容器, 进度, 速度):
用于设置任务进度的进度条。
参数说明:
container:这是一个字符串或HTML元素, 用于定义进度条元素的容器。
progress:以整数格式表示, 并定义任务的进度。
speed:以整数格式表示, 并指定任务进度的持续时间。
myApp.hideProgressable(包含):
用于隐藏进度条。
参数说明:
container:这是一个字符串或HTML元素, 用于定义进度条元素的容器。
myApp.showProgressable(容器, 进度, 颜色):
用于显示进度条。
参数说明:
container:这是一个字符串或HTML元素, 用于定义进度条元素的容器。
progress:以整数格式表示, 并定义任务的进度。
speed:以整数格式表示, 并指定任务进度的持续时间。
例让我们以一个示例来显示动画的确定和不确定进度条, 以指示Framework7中的活动:
<
!DOCTYPE html>
<
html>
<
head>
<
meta name = "viewport" content = "width = device-width, initial-scale = 1, maximum-scale = 1, minimum-scale = 1, user-scalable = no, minimal-ui" />
<
meta name = "apple-mobile-web-app-capable" content = "yes" />
<
meta name = "apple-mobile-web-app-status-bar-style" content = "black" />
<
title>
Progress Bar<
/title>
<
link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.min.css" />
<
link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.colors.min.css" />
<
link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.material.min.css" />
<
link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.material.colors.min.css" />
<
/head>
<
body>
<
div class = "views">
<
div class = "view view-main">
<
div class = "pages">
<
div data-page = "home" class = "page navbar-fixed">
<
div class = "navbar">
<
div class = "navbar-inner">
<
div class = "center">
Progress Bar<
/div>
<
/div>
<
/div>
<
div class = "page-content">
<
div class = "content-block-title">
Determinate Progress Bar<
/div>
<
div class = "content-block">
<
div class = "content-block-inner">
<
p>
Inline determinate progress bar:<
/p>
<
div class = "progressbar-inline">
<
p>
<
span data-progress = "10" class = "progressbar">
<
/span>
<
/p>
<
p class = "buttons-row">
<
a href = "http://www.srcmini.com/#" data-progress = "25" class = "button button-raised">
25%<
/a>
<
a href = "http://www.srcmini.com/#" data-progress = "50" class = "button button-raised">
50%<
/a>
<
a href = "http://www.srcmini.com/#" data-progress = "75" class = "button button-raised">
75%<
/a>
<
a href = "http://www.srcmini.com/#" data-progress = "100" class = "button button-raised">
100%<
/a>
<
/p>
<
/div>
<
p>
Loads and hides the determinate progress bar:<
/p>
<
div class = "progressbar-load-hide">
<
p>
<
a href = "http://www.srcmini.com/#" class = "button button-raised">
Start Loading<
/a>
<
/p>
<
/div>
<
p>
Displays the determinate progress bar on top:<
/p>
<
p class = "progressbar-overlay">
<
a href = "http://www.srcmini.com/#" class = "button button-raised">
Start Loading<
/a>
<
/p>
<
/div>
<
/div>
<
div class = "content-block-title">
Infinite Progress Bar<
/div>
<
div class = "content-block">
<
div class = "content-block-inner">
<
p>
Inline infinite progress bar:<
/p>
<
p>
<
span class = "progressbar-infinite">
<
/span>
<
/p>
<
p>
Displays the infinite progress bar in multiple colors:<
/p>
<
p>
<
span class = "progressbar-infinite color-multi">
<
/span>
<
/p>
<
p>
Displays the infinite progress bar on top:<
/p>
<
p class = "progressbar-infinite-overlay">
<
a href = "http://www.srcmini.com/#" <
p>
Displays the infinite progress bar in multiple colors on top:<
/p>
<
p class = "progressbar-infinite-multi-overlay">
<
a href = "http://www.srcmini.com/#" class = "button button-raised">
Start Loading<
/a>
<
/p>
<
/div>
<
/div>
<
div class = "content-block-title">
Different types of colored progress bars:<
/div>
<
div class = "list-block">
<
ul>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "5" class = "progressbar color-red">
<
/div>
<
/div>
<
/li>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "10" class = "progressbar color-pink">
<
/div>
<
/div>
<
/li>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "20" class = "progressbar color-deeppurple">
<
/div>
<
/div>
<
/li>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "30" class = "progressbar color-blue">
<
/div>
<
/div>
<
/li>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "40" class = "progressbar color-cyan">
<
/div>
<
/div>
<
/li>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "50" class = "progressbar color-green">
<
/div>
<
/div>
<
/li>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "60" class = "progressbar color-lime">
<
/div>
<
/div>
<
/li>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "70" class = "progressbar color-amber">
<
/div>
<
/div>
<
/li>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "80" class = "progressbar color-deeporange">
<
/div>
<
/div>
<
/li>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "90" class = "progressbar color-gray">
<
/div>
<
/div>
<
/li>
<
li class = "item-content">
<
div class = "item-inner">
<
div data-progress = "100" class = "progressbar color-black">
<
/div>
<
/div>
<
/li>
<
/ul>
<
/div>
<
/div>
<
/div>
<
/div>
<
/div>
<
/div>
<
script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js">
<
/script>
<
script>
var myApp = new Framework7({material: true});
var $$ = Dom7;
$$('.progressbar-inline .button').on('click', function () {var progress = $$(this).attr('data-progress');
var progressbar = $$('.progressbar-inline .progressbar');
myApp.setProgressbar(progressbar, progress);
});
$$('.progressbar-load-hide .button').on('click', function () {var container = $$('.progressbar-load-hide p:first-child');
//it doesn't load if another progresbar is loadingif (container.children('.progressbar').length) return;
myApp.showProgressbar(container, 0);
var progress = 0;
function simulateLoading() {setTimeout(function () {var progressBefore = progress;
progress += Math.random() * 20;
myApp.setProgressbar(container, progress);
if (progressBefore <
100) {simulateLoading();
}else myApp.hideProgressbar(container);
}, Math.random() * 200 + 200);
}simulateLoading();
});
$$('.progressbar-overlay .button').on('click', function () {var container = $$('body');
if (container.children('.progressbar, .progressbar-infinite').length) return;
myApp.showProgressbar(container, 0, 'orange');
var progress = 0;
function simulateLoading() {setTimeout(function () {var progressBefore = progress;
progress += Math.random() * 20;
myApp.setProgressbar(container, progress);
if (progressBefore <
100) {simulateLoading();
}//hides the progressbarelse myApp.hideProgressbar(container);
}, Math.random() * 200 + 200);
}simulateLoading();
});
$$('.progressbar-infinite-overlay .button').on('click', function () {var container = $$('body');
if (container.children('.progressbar, .progressbar-infinite').length) return;
myApp.showProgressbar(container, 'yellow');
setTimeout(function () {myApp.hideProgressbar();
}, 3000);
});
$$('.progressbar-infinite-multi-overlay .button').on('click', function () {var container = $$('body');
if (container.children('.progressbar, .progressbar-infinite').length) return;
myApp.showProgressbar(container, 'multi');
setTimeout(function () {myApp.hideProgressbar();
}, 3000);
});
<
/script>
<
/body>
<
/html>
【Framework7进度栏】立即测试
推荐阅读
- Framework7列表视图
- Framework7预加载器
- Framework7叠加层
- Framework7网格布局
- Framework7侧面板
- Framework7内容块
- Framework7工具栏
- Framework7导航栏
- Framework7布局