AngularJS实现进度条功能示例


Posted in Javascript onJuly 05, 2017

本文实例讲述了AngularJS实现进度条功能的方法。分享给大家供大家参考,具体如下:

一、功能描述:

① 通过select标签,可以为进度条选择不同的样式(颜色)

② 进度条的进度通过文本框里面的值改变(也可以快捷的选择几个特定的值)

③ 通过checkbox按钮,控制进度条上的文字是否显示

二、代码实现:

<!DOCTYPE html>
<html lang="en" ng-app='app'>
<head>
  <meta charset="UTF-8">
  <title>进度条</title>
  <script src='../js/angular.min.js'></script>
  <style>
    .progress{
      width:400px;
      border:1px solid #ccc;
      height: 28px;
      text-align: center;
      line-height: 28px;
      font-weight: bold;
      color: #fff;
      overflow: hidden;
    }
    .Bar{
      width:50%;
      height: 28px;
      background: #5BC0DE;
    }
    .blue{
      background: #5BC0DE;
    }
    .red{
      background: #D9534F;
    }
    .green{
      background: green;
    }
  </style>
</head>
<body ng-controller='progresscontro'>
  <div class="progress">
    <div ng-class="['Bar',vm.style]" ng-style="{width:vm.progress+'%'}">
      <div ng-if='vm.text'>{{vm.progress}}%</div>
    </div>
  </div>
  </br>
  <label>
    颜色:
    <select ng-model='vm.style'>
      <option value="red">red</option>
      <option value="green">green</option>
      <option value="blue">blue</option>
    </select>
  </label>
  </br></br>
  <label>进度:
    <input type="number" ng-model='vm.progress' ng-change="vm.myFunc()">
    <button ng-click='vm.progress=0'>0%</button>
    <button ng-click='vm.progress=20'>20%</button>
    <button ng-click='vm.progress=40'>40%</button>
    <button ng-click='vm.progress=60'>60%</button>
    <button ng-click='vm.progress=80'>80%</button>
  </label>
  </br></br>
  <label>
    是否显示文字:
    <input type="checkbox" ng-model='vm.text'>
  </label>
  <script>
   var app=angular.module('app',[]);
   app.controller('progresscontro',function($scope){
      var vm=$scope.vm={};
      vm.style='blue';
      vm.progress=50;
      vm.text=true;
      vm.myFunc=function(){
        if(vm.progress>100){
          vm.progress=100;
        }
        if(vm.progress<0){
          vm.progress=0;
        }
      }
   })
  </script>
</body>
</html>

demo预览:

AngularJS实现进度条功能示例

三、知识点分析

1、ng-class

ngclass实现有以下三种方式:

(1) 字符串形式:如果表达式求值为字符串,则字符串应为一个或多个空格分隔的类名。

<div ng-class="'red'"></div>

说明:字符串形式,每次只能绑定一个类名

(2) 数组形式:如果表达式求值为数组,则数组的每个元素应为一个字符串,该字符串是一个或多个空格分隔的类名。如下:

<div ng-class="['Bar',vm.style]" ng-style="{width:vm.progress+'%'}">
  <div ng-if='vm.text'>{{vm.progress}}%</div>
</div>

说明:数组中可以存放一个变量,但是字符串形式只能存放常量

(3) 对象:如果表达式计算为对象,则对于具有真值的对象的每个键值对,相应的键用作类名。

<div ng-class {'selected': isSelected, 'car': isCar}">

说明:当 isSelected = true 则增加selected class,当isCar=true,则增加car class,

2、ng-style

ng-style的属性值是一个对象,对象里的内容是以key->value的形式展现,key是属性,value是值,如下:

<div ng-class="['Bar',vm.style]" ng-style="{width:vm.progress+'%'}">
  <div ng-if='vm.text'>{{vm.progress}}%</div>
</div>

3、ng-if

ng-if 指令用于在表达式为 false 时,移除指定html元素,当表达式为true时,则添加移除的html元素,并显示,如下:

<div ng-if='vm.text'>{{vm.progress}}%</div>

说明:当vm.text为真时显示视图里面的内容,否则移除

4、ng-model

ng-model 指令绑定了 HTML 表单元素到 scope 变量中,如下:

<select ng-model='vm.style'>
  <option value="red">red</option>
  <option value="green">green</option>
  <option value="blue">blue</option>
</select>

说明:在select标签中,ng-model的值为所选择的option的value值

<input type="checkbox" ng-model='vm.text'>

说明:在checkbox中,ng-model的值为true或者false

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
window.event快达到全浏览器支持了,以后使用就方便了
Nov 30 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
Oct 22 Javascript
jQuery解决浏览器兼容性问题案例分析
Apr 15 Javascript
Bootstrap Navbar Component实现响应式导航
Oct 08 Javascript
js捕捉键盘事件和按键键值的方法
Oct 10 Javascript
JavaScript禁止微信浏览器下拉回弹效果
May 16 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
Dec 19 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
Sep 12 Javascript
npm 语义版本控制详解
Sep 10 Javascript
JS实现纵向轮播图(初级版)
Jan 18 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 Javascript
详解如何在Canvas中添加事件的方法
Apr 17 Javascript
AngularJS实现tab选项卡的方法详解
Jul 05 #Javascript
angularjs2中父子组件的数据传递的实例代码
Jul 05 #Javascript
jQuery制作input提示内容(兼容IE8以上)
Jul 05 #jQuery
jQuery常见面试题之DOM操作详析
Jul 05 #jQuery
详解基于angular-cli配置代理解决跨域请求问题
Jul 05 #Javascript
微信小程序学习之数据处理详解
Jul 05 #Javascript
用node和express连接mysql实现登录注册的实现代码
Jul 05 #Javascript
You might like
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python实现分割文件及合并文件的方法
2015/07/10 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
简单谈谈python基本数据类型
2018/09/26 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Python二维码生成识别实例详解
2019/07/16 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
zooplus波兰:在线宠物店
2019/07/21 全球购物
在校硕士自我鉴定
2014/01/23 职场文书
大学生先进事迹材料
2014/02/16 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书